Mise à jour avec les informations fournies par torek; Je ne sais pas pourquoi il n'a pas affiché cela comme une réponse, parce que c'est un chemin beaucoup plus court que ce que j'avais esquissé; alors plutôt que de le laisser dans les commentaires, la voici:
git diff
peut travailler sur des identifiants pour deux BLOB
s, et un raccourci pour l'identification d'un BLOB
est <commit>:<path>
. donc
git diff master:UsrActivity.java branch:ProfileActivity.java
(ajusté si nécessaire pour les chemins et l'identification de validation).
Réponse originale
Vous pouvez donner deux commits, mais seulement un chemin. Vous pouvez donner deux chemins, mais vous ne pouvez pas spécifier de validations. S'il y a un moyen de spécifier deux commits et un chemin différent pour chacun, je ne le sais pas ... Donc je pense que faire ce que vous voulez prend un peu plus de travail. Un moyen consiste à obtenir l'ID d'objet (SHA) pour chaque fichier. Pour un fichier-out est cochée, vous pourriez dire
git hash-object UsrActivity.java
Pour obtenir l'a d'un objet qui n'est pas vérifié, vous pouvez faire quelque chose comme
git log -n1 -raw --no-abbrev <commit-or-branch-containing-file> -- ProfileActivity.java
(Il existe des versions probablement plus simple de cela, je n'ai pas encore eu beaucoup de caféine ce matin.) Ou bien sûr vous pouvez consulter un commit qui a le 2ème fichier (ou juste vérifier ce fichier à partir d'un tel commit) et revenir à la commande git hash-object
.
Une fois que vous avez un hachage pour chaque fichier, vous voulez juste dire
git diff <file-1-hash> <file-2-hash>
Bien sûr, si vous finissez par vérifier les deux fichiers sur dans le worktree, alors vous pouvez simplement les diff directement
git diff UsrActivity.java ProfileActivity.java
Utilisez 'git rev-parse' pour transformer n'importe quel nom de spécificateur de commit arbitraire en plus du hash blob du fichier validé:' git rev-parse OldBranch: ProfileActivity.java' par exemple. Puis, puisque 'git diff' fonctionne, ainsi 'git diff : : '. –
torek