gpt4 book ai didi

git - 撤消 Git 中已推送到远程仓库的特定提交

转载 作者:行者123 更新时间:2023-12-05 07:12:18 26 4
gpt4 key购买 nike

撤消特定提交的最简单方法是:

  • 不在头部或头部
  • 已推送到远程。

因为如果不是最新的提交,

git reset HEAD

没用。并且因为它已经被推送到远程,

git rebase -i

git rebase --onto

会导致 Remote 出现问题。

更何况,我真的不想修改历史。如果有错误的代码,它就存在于历史中并且可以被看到。我只是想把它放在工作副本中,我不介意反向 merge 提交。

换句话说,Git 是什么?等效于以下 svn 命令:

svn merge -r 303:295 http://svn.example.com/repos/calc/trunk

通过反向 merge 这些修订中的所有更改,将所有更改从 295 删除到 302,作为新提交。

svn merge -c -302 ^/trunk

撤消 302 提交,当然是通过添加另一个提交来反向 merge 来自相应提交的更改。

我认为这在 Git 中应该是一个相当简单的操作,也是一个相当常见的用例。原子提交还有什么意义?

我们有分期 stashing所有这些都是为了确保提交是完全原子的,难道你不应该能够轻松地撤消一个或多个这些原子提交吗?

最佳答案

使用 git log 识别提交的哈希值, 然后使用 git revert <commit>创建一个删除这些更改的新提交。在某种程度上,git revertgit cherry-pick的逆-- 后者将补丁应用于缺少它的分支,前者将其从拥有它的分支中删除。

关于git - 撤消 Git 中已推送到远程仓库的特定提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60456699/

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