gpt4 book ai didi

Git 删除提交而不删除 merge 提交

转载 作者:行者123 更新时间:2023-12-04 08:15:24 25 4
gpt4 key购买 nike

我有这个:

*   ea626d4 (HEAD -> main) Merging
|\
| * 27069d1 (origin/main, origin/HEAD)
* | 5b02356
|/
* 8978bec
我想删除提交 5b02356 但保留提交 ea626d4
* ea626d4 (HEAD -> main) Merging, maybe with changed name
|
* 27069d1 (origin/main, origin/HEAD)
|
* 8978bec
我该怎么做?我试过 git rebase -i 8978bec ,但它删除了最后一次提交,

最佳答案

git reset --soft 27069d1
git commit
--soft , reset命令跳转回给定的提交,但不更改工作目录,并将两次提交之间不同的文件标记为“待提交”。新提交将具有与原始提交相同的内容,但将是常规的非 merge 提交。
请注意,实际上不可能以任何方式修改提交(更改其内容、消息、作者、时间戳、父项、是否是 merge 等)-每当 git 允许您“修改”提交时,它就是实际上创建具有不同 SHA 的新提交(并且通常删除对原始提交的引用,因此看起来您进行了就地修改)。因此,您生成的非 merge 提交将具有不同的 SHA;无法进行您想要的更改并保留提交 SHA ea626d4 .

关于Git 删除提交而不删除 merge 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65728497/

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