我认为我的母版和发行版分支有所不同,我想知道使它们恢复同步的最佳方法是什么。
我有一个master
分支,应该将其用于开发,但是随后我将把这个master
分支合并到release
分支中,以创建可以部署的最终版本。一切正常,但是从一周前开始,每当我尝试创建从master
合并到release
的拉取请求时,我都会获得应在release
中的提交列表。我将合并PR,但是每次尝试从master
合并到release
的新PR都会一直发生。
我尝试查看更改以确保两个分支都相同
git diff upstream/master..upstream/release
没有区别。
git diff upstream/release..upstream/master
也没有区别。
但是git diff upstream/master...upstream/release
给了我所有提交以来的更改,因为那一次可能使我的两个分支分开了。
我认为可能发生的事情是,我的两个分支的原始代码相同,但是它们的提交不同?我仍在学习git以及如何更有效地使用它的课程,因此对您的帮助将不胜感激!
我敢打赌,如果您运行git diff upstream/release...upstream/master
,您将获得与在那里发布的第3条命令相同的输出...是的,分支已经分歧,但是它们具有相同的内容,这就是为什么2与diff没有区别的原因。点,但输出为3点。
仍然无法回答您的问题。这实际上取决于您所说的“使它们同步”。
have the same content
:他们已经这样做了get the branch histories together
,则可以尝试将它们合并。get one branch to have the exact same history as the other
,则意味着重置--hard(因此重写了历史记录)和一些强制推动。TIL:git diff
与..
对...
和git log
的解释不同。
git diff a..b
(两个点)与git diff a b
]相同>git diff a...b
(三个点)将a
和b
的合并基数与b
进行比较请参见docs的“描述”部分。
运行:git log --oneline --graph upstream/master upstream/release
,您将查看提交的布局方式。
您的两个点diff命令确实向您显示了两个分支具有相同的内容。
“合并基数”是两个分支之间的分支点,您在三个点中看到的差异是该分支的提交与头部提交之间的区别。
我认为可能发生的事情是我的两个分支的原始代码相同,但是它们的提交不同?