gpt4 book ai didi

git - 将推送的分支恢复为具体的提交

转载 作者:太空狗 更新时间:2023-10-29 13:28:32 25 4
gpt4 key购买 nike

我已将一个开发分支(具有持续的、有时不稳定的更改) merge 到我们的主分支(我们存储已发布的稳定代码)。我想将 master 分支恢复到之前的状态,就像从未发生过与 dev 分支的 merge 一样(并且当将来我们 merge dev 分支时,我们现在将丢弃的所有更改将“再次” merge )。

这是 master 分支的当前状态,我希望它在 HEAD 处具有“professional-1.1.2”提交/标记。

status of the master branch

我试过:

$ git revert -n professional-1.1.2..HEAD
fatal: Commit 9167e846a387c793edbc089c7ab6bd9eb8260456 is a merge but no -m option was given.
$ git revert -n -m 1 professional-1.1.2..HEAD
fatal: Mainline was specified but commit 380169097f35d07466640bc0db1b639278cd25fa is not a merge.
$ git revert -n -m 2 professional-1.1.2..HEAD
fatal: Mainline was specified but commit 380169097f35d07466640bc0db1b639278cd25fa is not a merge.

经过一番研究后,我认为更好的选择是将 git reset --hard professional-1.1.2git push --force 作为 Git: How to ignore fast forward and revert origin [branch] to earlier commit?reverting push'd git commit 的答案。其他开发人员在同一个办公室,他们永远不应该向 master 提交任何东西(我也不应该,但是......是的,我们没有每个分支的权限),所以告诉他们并做任何事情都不是什么大问题需要采取行动。

所以最后的问题是:git revert something 还是 git reset --hard <TAG> && git push --force ?如果是 git revert ,我应该使用哪个命令行?

最佳答案

-m number 选项指定要还原到哪个父级(因为 merge 有多个父级)。

所以你想要 git revert -m 1 HEADgit revert -m 1 SHA_OF_MERGE_COMMIT(假设你做了 git checkout master; git merge devel;)

关于git - 将推送的分支恢复为具体的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10330970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com