被命名为:UsrActivity.java
现在命名为:ProfileActivity
git diff不显示它并排显示Android Studio的窗口视图,而是显示单个当前类文件。如何比较同名文件与其他分支文件保存具有不同的名称
如何与“DevBranch”
总之,如何跨分支比较两个独立的文件UsrActivity.java
比较“OldBranch”的ProfileActivity.java
。谢谢
被命名为:UsrActivity.java
现在命名为:ProfileActivity
git diff不显示它并排显示Android Studio的窗口视图,而是显示单个当前类文件。如何比较同名文件与其他分支文件保存具有不同的名称
如何与“DevBranch”
总之,如何跨分支比较两个独立的文件UsrActivity.java
比较“OldBranch”的ProfileActivity.java
。谢谢
已更新由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>
当然,如果你最终检查两个文件伸到worktree,那么你可以diff的他们直接
git diff UsrActivity.java ProfileActivity.java
使用'git rev-parse'可以将任意的commit-specifier-plus-path-name变成提交文件的blob hash:例如'git rev-parse OldBranch:ProfileActivity.java'。然后,因为'git diff''起作用,所以'git diff ::'。 –
torek