我们如何得到两个git存储库之间的区别?
场景: 我们有一个repo_a和repo_b。后者是作为repo_a的副本创建的。之后,两个存储库都进行了并行开发。是否有一种方法可以列出这两个存储库的当前版本的差异?
我们如何得到两个git存储库之间的区别?
场景: 我们有一个repo_a和repo_b。后者是作为repo_a的副本创建的。之后,两个存储库都进行了并行开发。是否有一种方法可以列出这两个存储库的当前版本的差异?
当前回答
一旦你在一个存储库中有了两个分支,你就可以做git diff了
git fetch /the/other/repo/.git refs/heads/*:refs/remotes/other/*
其他回答
git diff master remotes/b
这是不正确的。Remotes /b是一个遥控器,但不是一个分支。
为了让它工作,我必须做:
git diff master remotes/b/master
Meld可以比较目录:
meld directory1 directory2
只要使用两个git repo的目录,你就会得到一个很好的图形比较:
当您单击其中一个蓝色项目时,您可以看到发生了什么变化。
你最好的办法是在你的本地机器上有两个repo,并使用linux diff命令,将这两个目录作为参数:
diff -r repo-A repo-B
要跟进@iamamac的回答,在这之后有一个很好的总结:
git remote add -f b path/to/repo_b.git
git remote update
我会用差分树:
git diff-tree master remotes/b/master --compact-summary
可以使用如下命令:
diff -x .git -r repo-A repo-B
或者你可以用:
diff -x .git -W200 -y -r repo-A repo-B
在为每个diff文件着色的情况下,您可以使用:
diff -x .git -W200 -y -r repo-A repo-B | sed -e "s/\(^diff .*\)/\x1b[31m\1\x1b[0m/"