【发布时间】:2021-11-12 19:33:32
【问题描述】:
阅读答案:
Git - Remove commit from history
我只看到涉及交互式编辑 TODO 文件的建议。有没有办法在给定哈希的情况下删除单个提交,并保留(“选择”)所有后续提交,而无需用户交互?
【问题讨论】:
-
看起来可以使用
GIT_SEQUENCE_EDITOR环境变量来完成,例如sed:GIT_SEQUENCE_EDITOR="sed -i '/p <SHA1>/d'" git rebase -i <UPSTREAM>(需要-i开关:它将编辑/.git/rebase-merge/git-rebase-todo文件-地方)。GIT_SEQUENCE_EDITOR提示在这里找到:stackoverflow.com/questions/12394166/… -
我之前也想知道这个问题,但我认为
git-rebase对于这种情况来说“太瓷了”,可能可以通过使用一些管道命令来解决。 -
@fluffy:你不是说
/pick <SHA1>/d吗? -
当你说“删除提交”时,你是想保留提交中的内容,还是也想丢弃它?
-
stackoverflow.com/a/32318688/7976758 :
git rebase --onto SHA^ SHA发现于stackoverflow.com/search?q=%5Bgit-rebase%5D+remove+commit
标签: git automation git-rebase