GitHub上有两个回购协议:
“repo1”是具有定期提交(尚未由我派生)的主服务器。
“repo2”是2年前的repo1分支(我还没有分支)
我想根据“repo2”(大约2年前)分支的“repo1”中的代码版本,在两个repo之间做一个比较。我的目标是从“repo1”中获取最新的代码,以及从“repo2”中分离出来的更改,并将它们合并到一个新的“repo3”中,有效地将2年前添加到fork中的更改引入到我的最新代码“repo1”的新fork中。
我遇到的一个问题是,当我尝试从同一个根/主叉中叉出多个叉时,它似乎不起作用,只是将我指向第一个叉。我想我需要在本地克隆所有的签名,并在那里做所需的工作,然后推回到一个新的干净的合并回购?
任何指导都非常感谢。
最佳答案
我尝试从同一根/主根分叉多个分叉
您不必派生多个repo:只派生您想要贡献的repo(通过pr-pull请求)。这里是fork repo1,然后在本地克隆它。
在本地克隆上,键入:
git remote add /url/repo2
git fetch repo2
然后你就可以diff between
master
and repo2/master
。git diff repo2/master..master
更多信息请参见“Showing which files have changed between git branches”
git diff --name-status repo2/master..master
OP qtime67增加了in the comments:
由于repo2是fork之后,repo1已经有了很大的发展,我希望首先看到的是原始fork(repo2)和生成fork时repo1版本之间的核心变化。
如“
Git diff ..
? What's the difference between having ..
and no dots”中所述,将使用三个点:git diff repo2/master...master
git diff master...repo2/master
三点差异将不同于共同祖先(
git merge-base foo master
)