不知何故,我的主分支和我的起源/主分支分道扬镳了。 我不希望它们发散。
我如何看待这些差异并将其合并?
不知何故,我的主分支和我的起源/主分支分道扬镳了。 我不希望它们发散。
我如何看待这些差异并将其合并?
当前回答
我有这个问题,即使在阅读了上面的回复后,我也不知道是什么导致了它。我的解决办法是做
git reset --hard origin/master
然后,这只是将我的(本地)master副本(我认为是搞砸了)重置到正确的点,由(远程)origin/master表示。
警告:您将丢失所有尚未推送到原点/主节点的更改。
其他回答
在我的例子中,这里是我所做的导致分歧的消息:我做了git push,但后来做了git commit——amend,以向commit消息中添加一些东西。然后我又做了另一次提交。
所以在我的例子中,这仅仅意味着原点/主节点已经过时了。因为我知道没有其他人在触摸原点/master,修复是微不足道的:git push -f(其中-f表示力)
我相信这应该对我有帮助:
git reset --hard origin/master
但事实并非如此。不知怎的,我得到了同样的消息&当我从远程分支中提取更改时,冲突就发生了。因为我确定我根本不需要我现有的本地分支&我只需要一个远程主分支的副本,因此我想出了这个解决方案:
签出到一个新的分支,例如,git Checkout -b placeholder-branch。注意:该分支可以稍后删除。 git分支-D master,我这样做是因为我确定我的本地分支被搞砸了&我不需要这个。我需要远程实例的新副本。 Git签出-跟踪原点/master &你完成了;现在你可以使用git branch -D删除占位符分支
将123替换为分支偏离原点的提交数。
git reset HEAD~123 && git reset && git checkout . && git clean -fd && git pull
为了更直接地回答最初的问题,您可以检查实际冲突的差异:
git diff HEAD..origin/master
并使用此信息来决定是将源的更改拉到本地回购中,还是将本地更改推到源中。
git pull --rebase origin/master
是一个在大多数情况下可以帮助您的命令。
编辑:从源/主节点中提取提交,并将您的更改应用于新提取的分支历史记录。