git远程分支在我工作的时候被删除了

时间:2013-07-02 21:51:57

标签: git

我正在开发一个名为'master'的分支。有人从原点删除了它,现在我处于一个奇怪的状态,我无法提交我的更改。我想将它们提交到新的“稳定”分支。

我尝试了关于stackoverflow的一些说明,现在我真的搞砸了。

$ git log --oneline --decorate --graph --all -10
* 4b2b148 (HEAD, origin/stable, stable) move from master branch
| * 1be25fe (origin/master, origin/HEAD, next, master) require pcre to prevent regular expression weirdness

1be25fe是我想申请稳定的提交。 4b2b148是我犯了一些奇怪的东西。如何将1be25fe置于稳定状态并完全删除4b2b148?

1 个答案:

答案 0 :(得分:1)

要恢复到1be25fe,您需要运行以下命令,将HEAD移回1be25fe。然后,您可以通过执行推送来推动上游。

git reset --hard 1be25fe # revert back to 1be25fe
git status               #to check to see that it has reverted correctly, and see if there are any other issues.
git push origin stable   #push the changes and recreated the branch upstream

//编辑

为了解决您的“提示”错误,您可以将-f参数添加到推送中。此参数强制更改远程存储库。我之前遇到过同样的问题而且效果很好。

git push -f origin stable

//编辑2

如果您想要实际删除提交,则需要查看变基:http://git-scm.com/book/en/Git-Branching-Rebasing

//编辑3

要将更改与4b2b148合并,您需要执行以下操作:

git checkout -b important_changes origin/stable # branch off from the current state
git cherry-pick 4b2b148 # retrieve the commit containing the changes and insert it ahead of 1be25fe
git checkout stable # switch back to the older branch
git merge important_changes # merge in the important changes
git commit -am 'merged important changes' # commit the changes
git push origin stable # push the branch to master
git branch -d important_changes # remove the temp branch.

警告:合并important_changesstable时,可能会遇到一些合并问题。在推动之前确保它们已被固定。