发生的情况是这样的:
- 最近提交到远程主控之后,我对本地存储库做了一个小小的更改
- I add
git commit --amend
并留下与 HEAD 相同的提交消息
- 我尝试将回购推向master
git push
现在我明白了
On branch master
Your branch and 'origin/master' have diverged,
and have 1 and 1 different commit each, respectively.
(use "git pull" to merge the remote branch into yours)
nothing to commit, working directory clean
我想了解:
- 为什么会发生这种情况?
- 我可以做什么来防止这种情况发生?
- git 修改后如何使 master 与 local 一致?
您更改了现有的推送提交,创建了您自己的版本(因为其内容已更改)
--x---Y (master: that is the X amended)
\
--X (origin/master)
这就是为什么 master 和 origin/master 之间各有 1 和 1 个不同的提交
我可以做什么来防止这种情况发生?
不要“修改”现有的推送提交(仅限本地尚未推送的提交)
git 修改后如何使 master 与 local 一致?
只需在 origin/master 之上重新建立基础,然后推送
git rebase origin/master
--x--X---Y' (master)
|
(origin/master)
git push
--x--X---Y' (master, origin/master)
然而,jwinn https://stackoverflow.com/users/835996/jwinn注释中评论 https://stackoverflow.com/questions/43289444/git-merge-conflict-after-git-amend-your-branch-and-origin-master-have-diver/43290456#comment128616968_43290456这可能意味着你的修正消失了(“warning: skipped previously applied commit
“),并且不会是让您的本地修改(在已经推送的提交上)的方法origin/master
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)