如何使用先前的git提交进行推送

时间:2014-02-25 07:00:29

标签: git git-revert

我有一个先前的提交(9770912),我想暂时返回并推送到服务器以查看此提交后该错误是否出现在网站上。此外,我想在此之后回到当前的代码状态。执行git checkout 9770912时,我无法进行推送或提交。

2 个答案:

答案 0 :(得分:2)

  

当执行git checkout 9770912时,我无法进行任何推送或提交。

那是因为你在 detached HEAD mode ,这意味着你不在分支中(所以,你不能推动那个“非分支”)

您可以在该提交上创建另一个分支,并强制将其推送到远程主分支

git checkout -b aNewBranch
git push -f origin aNewBranch:master

然后你可以恢复到主人:

git push -f origin master:master

答案 1 :(得分:0)

@vonc关于分离的HEAD是对的

你应该回到你的头上

git reset HEAD --hard

在这里你还有两个选择:

通过恢复提交使其清理并再次推送:

git revert 9770912
git push origin master (I suppose you are on your master)

或者你可以改变你的分支并让它消失(更复杂,你将重写历史)

git rebase -i HEAD~5 (-i for interactive mode and we will check the five latest commits from the HEAD)

When you are in this mode you should simple delete the line with your commit (with vim for example you can use dd keyboard letter (twice))

Save and quit (:wq)

git push origin master --force (you have to force to rewrite your history and make it disappear)

小心这种方法,好像你有同事,它也会与他们的上一次历史产生冲突。