分支在拉动而不是推动后分叉

时间:2015-07-27 13:35:49

标签: git

我不小心做了git pull而不是git push并且发生了合并冲突。我很惊讶git尝试了一个合并,因为远程分支自我上次拉/推以后没有收到任何提交。由于我不想进行拉/合并,我做git reset --hard后跟git merge --abort。我试着推,但收到了消息:

On branch my_branch
Your branch and 'origin/my_branch' have diverged,
and have 17 and 1 different commit each, respectively.
  (use "git pull" to merge the remote branch into yours)
nothing to commit, working directory clean

如何在意外拉动之前返回状态,以便能够将我的本地提交推送到远程分支?

1 个答案:

答案 0 :(得分:1)

你的遥控器确实得到了提交。您可以使用以下命令查看git树:

git log --all --graph --decorate --oneline

也许你在遥控器上已有的一次提交上做了git commit --amend或类似的事情。分析上面命令的输出(并在你的问题中发布它),看看你想要保留哪个提交。

由于您正在处理您的个人分支,您可以考虑(请注意,这不是理想的)粉碎您的(1)远程提交与您的(17)本地提交,使用

git push -f

警告:在这种情况下,您将“丢失”一次远程提交。

如果您想保持一次远程提交,您可以考虑先将本地工作重新定位到该提交,然后再推送

git rebase origin/my_branch
git push