gpt4 book ai didi

git - 修复旧提交中添加的错误的最佳方法?

转载 作者:太空狗 更新时间:2023-10-29 14:07:40 25 4
gpt4 key购买 nike

当你想做的时候,你遇到的最佳实践是什么修复旧提交中创建的错误?

假设您有以下提交A->B->C->D 并且您发现在提交 B 时有一个错误已添加。

[编辑:A、B、C、D已经发布(他人推送)]

你会回去 B 将修复添加为新提交 B' 并 merge 得到 E:

A->B->C->D->E
\->B'-----/

还是在 D 之后添加修复?

A->B->C->D->E

Stackoverflow 向我建议,这可能是一个愚蠢的问题,但了解您尝试过的选项以及您从中遇到的问题或 yield 很重要。

最佳答案

如果有问题的提交已经被推送到另一个存储库(Mercurial 将使用 commit phase 跟踪它),那么我只需将新提交作为 D 的子项。将 bugfix 创建为 B 的子项并进行后续 merge 并没有真正的优势——在 E 的提交消息中指出,这修复了 中引入的错误B 也同样有效。

如果引入错误的提交仍然是本地的(在 Mercurial 的 draft 阶段),那么您应该在将其推送到任何地方之前简单地编辑提交。

在 Mercurial 中,您可以使用包含的 histedit extension为此:

$ hg histedit B

将打开一个编辑器,让您指定要为每次提交完成的操作。在 B 对应的行中将 pick 更改为 edit。当您保存文件并关闭编辑器时,历史编辑就开始了。您现在可以修复错误并运行

$ hg histedit --continue

当您对结果感到满意时。

在 Git 中你使用所谓的 interactive rebase编辑历史:

$ git rebase -i B^

这将启动与 Mercurial 相同的过程。将 pick 更改为 edit 并关闭编辑器。根据您的喜好编辑文件并在继续历史编辑之前修改提交:

$ git commit -a --amend
$ git rebase --continue

关于git - 修复旧提交中添加的错误的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24368141/

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