如何将同一文件与以不同名称保存的其他分支文件进行比较

时间:2017-10-10 12:08:32

标签: git android-studio

命名为:UsrActivity.java现在命名为:ProfileActivity git diff没有显示Android Studio的并排差异窗口视图,而是显示单个当前类文件。

如何比较'OldBranch'的ProfileActivity.java与'DevBranch'的UsrActivity.java

简而言之,如何比较分支上的两个独立文件。感谢

1 个答案:

答案 0 :(得分:0)

使用torek提供的信息更新;不知道为什么他没有把这个作为答案发布,因为它比我概述的路径短得多;所以不要把它留在评论中,这里是:

git diff可以处理两个BLOB的标识符,标识BLOB的简写是<commit>:<path>。所以

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

(根据路径和提交标识的需要进行调整)。

原始回复

您可以提供两次提交,但只能提供一条路径。您可以提供两个路径,但是您无法指定提交。如果有办法为每个提交指定两个提交和不同的路径,我就不知道......所以我认为做你想做的事需要额外的工作。

一种方法是获取每个文件的对象ID(SHA)。对于签出文件,您可以说

git hash-object UsrActivity.java

要获取未检出的对象,您可以执行类似

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

(可能有更简单的版本;我今天早上还没有多少咖啡因。)或者你当然可以查看一个包含第二个文件的提交(或者只是从这样的文件中查看该文件) ()并返回git hash-object命令。

每个文件都有哈希值后,您只需说

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

当然,如果您最终将两个文件都检入到工作树中,那么您可以直接将它们区分开来

git diff UsrActivity.java ProfileActivity.java