Github有两个回购:
“Repo1”是一个有常规提交的主人(我还没分叉) “Repo2”是大约2年前Repo1的一个分支(尚未分叉)
我想在两个Repos之间做一个DIFF,基于“Repo1”中由“Repo2”(大约2年前)分支的代码版本。我的目标是从“Repo1”中获取最新的代码,以及现在从“Repo2”中分离出来的变化,并将这些变化合并为一个新的“Repo3”,有效地将2年前添加到fork中的更改添加到我的新最新代码“Repo1”的分支。
我遇到的一个问题是,当我尝试将多个Fork形式分叉到相同的root / master时,它似乎无法工作,只需将我指向第一个fork即可。我想我需要在本地克隆everythign,并在那里完成所需的工作,然后推回到一个新的干净的合并仓库?
非常感谢任何指导。
答案 0 :(得分:2)
我尝试将多个Fork形式分叉为相同的root / master
您不必分叉多个仓库:只分叉您想要贡献的仓库(通过PR - Pull Request)。在这里,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
由于Repo2已经分叉,Repo1已经大大增加了,我希望首先看到原来的Fork(Repo2)和叉子制造时的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
)