我只是犯了一个错误,并且确实需要撤消git pull命令。错误是我写了git pull origin devbranch
而不是git pull origin master
。所以我把错误的分支输入我网站上的主分支。我很幸运,合并并没有通过。
我现在收到此消息git status
:
On branch master
Your branch and 'origin/master' have diverged,
and have 10 and 1 different commit each, respectively.
(use "git pull" to merge the remote branch into yours)
All conflicts fixed but you are still merging.
(use "git commit" to conclude merge)
Changes to be committed:
modified: sites/all/modules/mymodule/mymodule.module
Untracked files:
(use "git add <file>..." to include in what will be committed)
cache/normal/www.mysite.com/
sites/default/private/temp/somefile.csv
root@server:/srv/www/mysite/public_html#
我知道git pull
由git fetch
+ git merge
组成,在此cas中合并未完成,只有获取部分。
如何在灾难性的&#34; git pull
&#34;之前回到州。我已经使用git reflog来查看前拉命令所使用的引用,然后我执行了git reset --hard a0d3fe6
(其中a0d3fe6是前一次引用的引用)。这并没有改变任何事情。在git status
之后我仍然收到相同的消息。怎么办?
答案 0 :(得分:2)
如果再次发生这种情况,请记住在合并中,git只会添加提交。如果合并已完成,则所有原始提交仍然存在。因此,您可以使用
恢复分支的先前状态git reset --hard HEAD@{1}
查看HEAD所在的提交,(列表&#39; HEAD @ {1}&#39;使用):
git reflog -32
并随时查看您提交的内容
git log --oneline --decorate --graph -32 --branch --tags --remotes
如果您打算做像rebase这样复杂的事情,您可以使用
标记起始提交git tag MyStartingCommit
然后如果事情都被搞砸了,只需重新启动当前分支:
git reset --hard MyStartingCommit