-1

我在一个名为“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?

4

1 回答 1

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_changes和时,您可能会遇到一些合并问题stable。在推动之前确保它们已固定。

于 2013-07-02T21:57:09.123 回答