在原点拉动后撤消git合并

时间:2014-10-25 10:33:48

标签: github

长时间没有使用应用程序后,我又重新开始了,并且无法解决错误。

所以我检查了一个以前的本地分支,修复了它,然后我做了这个:

git checkout master
git pull origin master
git merge new_master
git push origin master

(没有意识到我要将它与以前的错误合并)

然后我尝试了一些我在堆栈溢出时发现的东西,现在我完全迷失了。

我如何从此回溯?

我从github拉了主人。

2 个答案:

答案 0 :(得分:0)

您可以标记当前的master分支(不是您想要的)

git branch tmp

您可以将主服务器重置为较旧的提交(在GitHub上查看master的历史记录,然后在推送之前选择SHA1)

git reset --hard old_SHA1

然后,您可以查看本地tmp分支的历史记录,以及cherry-pick the commit(s) you want to apply to master

完成此操作后,您可以强制推送到原点:

git push --force origin master

答案 1 :(得分:0)

尝试还原它:

找出git merge的哈希值

  

git checkout master   git pull origin master    git merge new_master   git push origin master

git log,然后是Undoing Merges):

$ git revert -m 1 hash_founded

但是,假设你想在 git pull 之前回来,你应该去

$ git revert -m 2 hash_founded

-m选项“指定主线的父编号(从1开始),并允许恢复相对于指定父级的更改。” (git revert

您也可以随时重置:Revert to a previous Git commit