我们如何得到两个git存储库之间的区别?

场景: 我们有一个repo_a和repo_b。后者是作为repo_a的副本创建的。之后,两个存储库都进行了并行开发。是否有一种方法可以列出这两个存储库的当前版本的差异?


当前回答

要跟进@iamamac的回答,在这之后有一个很好的总结:

git remote add -f b path/to/repo_b.git
git remote update

我会用差分树:

git diff-tree master remotes/b/master --compact-summary

其他回答

要跟进@iamamac的回答,在这之后有一个很好的总结:

git remote add -f b path/to/repo_b.git
git remote update

我会用差分树:

git diff-tree master remotes/b/master --compact-summary

你最好的办法是在你的本地机器上有两个repo,并使用linux diff命令,将这两个目录作为参数:

diff -r repo-A repo-B

可以使用如下命令:

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/"

您可以先添加其他回购作为当前回购的远程:

git remote add other_name PATH_TO_OTHER_REPO

然后从遥控器中获取分支:

git fetch other_name branch_name:branch_name

这将创建该分支作为当前回购中的新分支,然后你可以将该分支与你的任何分支区分,例如,将当前分支与新分支(branch_name)进行比较:

git diff branch_name

一旦你在一个存储库中有了两个分支,你就可以做git diff了

git fetch /the/other/repo/.git refs/heads/*:refs/remotes/other/*