2017-10-10 1 views
0

Wurde benannt: UsrActivity.java jetzt benannt: ProfileActivity git diff zeigt nicht an, es ist Seite diff Seite Fensteransicht von Android Studio, stattdessen zeigt es einzelne aktuelle Klassendatei.Wie die gleiche Datei mit anderen Datei mit anderen Namen gespeichert vergleichen

Wie mit UsrActivity.java von ‚DevBranch‘

Kurz ProfileActivity.java von ‚OldBranch‘ zu vergleichen, wie zwei unabhängige Dateien über den Zweig zu vergleichen. Danke

Antwort

0

Aktualisiert mit Informationen von torek geliefert; ich bin mir nicht sicher, warum er das nicht als Antwort geschrieben hat, weil es viel kürzer ist als das, was ich skizziert habe; so anstatt es in den Kommentaren zu hinterlassen, hier ist es:

git diff kann für zwei BLOB s auf Kennungen arbeiten und eine Abkürzung für eine BLOB ist die Identifizierung <commit>:<path>. also

git diff master:UsrActivity.java branch:ProfileActivity.java 

(angepasst wie für Pfade und Festschreibeidentifikation erforderlich).


Original-Antwort

Sie können zwei Commits geben, aber dann nur einen Weg. Sie können zwei Pfade angeben, aber dann können Sie keine Commits angeben. Wenn es eine Möglichkeit gibt, zwei Commits und einen anderen Pfad für jedes zu spezifizieren, weiß ich es nicht ... Also ich denke, zu tun, was Sie wollen, braucht ein bisschen mehr Arbeit.

Eine Möglichkeit besteht darin, die Objekt-ID (SHA) für jede Datei abzurufen. Für eine ausgecheckte Datei, könnte man sagen

git hash-object UsrActivity.java 

die von einem Objekt zu erhalten, die nicht ausgecheckt ist, Sie so etwas wie

git log -n1 -raw --no-abbrev <commit-or-branch-containing-file> -- ProfileActivity.java 

(Es gibt wahrscheinlich einfachere Versionen tun könnte Ich habe heute Morgen noch nicht viel Koffein gehabt.) Oder Sie können natürlich einen Commit mit der 2. Datei prüfen (oder einfach die Datei von einem solchen Commit abchecken) und zum Befehl git hash-object zurückkehren.

Sobald Sie einen Hash für jede Datei haben, würden Sie sagen, nur

git diff <file-1-hash> <file-2-hash> 

Natürlich, wenn Sie beide Dateien Auschecken am Ende in die worktree, dann kann man sie nur direkt diff

git diff UsrActivity.java ProfileActivity.java 
+0

Verwenden Sie 'git rev-parse', um einen beliebigen commit-specifier-plus-Pfadnamen in den Blob-Hash der übergebenen Datei umzuwandeln:' git rev-parse OldBranch: ProfileActivity.java' zum Beispiel. Dann, da 'git diff ' funktioniert, so tut 'git diff : : '. – torek

Verwandte Themen