不知何故,我的主分支和我的起源/主分支分道扬镳了。 我不希望它们发散。
我如何看待这些差异并将其合并?
不知何故,我的主分支和我的起源/主分支分道扬镳了。 我不希望它们发散。
我如何看待这些差异并将其合并?
当前回答
我知道这里有很多答案,但我认为git reset -soft HEAD~1值得注意,因为它让你在解决发散状态时,在最后一次本地(未推送)提交中保留更改。我认为这是一个比使用rebase的pull更通用的解决方案,因为本地提交可以被审查,甚至可以移动到另一个分支。
关键是使用——柔和,而不是严厉——强硬。如果提交次数超过1次,则更改HEAD~x应该可以工作。这里是解决我的情况的所有步骤(我有1个本地提交和8个远程提交):
1) git reset—soft HEAD~1来撤销本地提交。对于接下来的步骤,我使用了SourceTree中的接口,但我认为以下命令也可以工作:
2) git从1)到stash的变化。现在所有的变化都是安全的,不再有分歧。
3) git拉取远程更改。
4) git stash pop或git stash apply应用上次存储的更改,如果需要,随后是一个新的提交。当想要丢弃本地提交中的更改时,这一步是可选的,还有2)。另外,当想要提交到另一个分支时,这一步应该在切换到所需的分支后完成。
其他回答
我有这个问题,即使在阅读了上面的回复后,我也不知道是什么导致了它。我的解决办法是做
git reset --hard origin/master
然后,这只是将我的(本地)master副本(我认为是搞砸了)重置到正确的点,由(远程)origin/master表示。
警告:您将丢失所有尚未推送到原点/主节点的更改。
Git重置——soft origin/my_remote_tracking_branch
This way you will not loose your local changes
我已经通过移动到commit_sha来修复它,最后提交给origin/master。
git reset --hard commit_sha
警告:在commit 'commit_sha' commit之后,你将丢失所有提交的内容。
当我基于分支a创建一个分支时遇到了这个问题
git checkout -b a
然后我将分支a的起始流设置为分支B的原点
git branch -u origin/B
然后我得到了上面的错误消息。
对我来说,解决这个问题的一个方法是,
删除分支a 创建一个新的分支b
git checkout -b b origin/B
要查看差异:
我嫉妒他
这将显示两个分支之间的变化或差异。在araxis(我最喜欢的)中,它以文件夹差异样式显示它。显示每个更改的文件。然后,我可以单击一个文件来查看文件中更改的详细信息。