从分支中删除特定提交
Remove a specific commit from a branch
如何在推送后从分支中删除特定提交?
假设我在名为 v0.1
的远程存储库中有这样的历史记录(从最新到最旧),我想从 v0.1
中删除 765th4
,而不从中删除它其他分支。我该如何实现?
2fsf34
32t6e0
54r346
765th4
9r34gg
谢谢!
这里最安全的选择是 不是 实际上从 v0.1
分支中删除 765th4
提交,而是 revert 它使用 git revert
。尝试以下命令:
# from v0.1 branch
git revert 765th4
如果您 运行 git log
在 运行 完成以上操作后,您会注意到 new 提交已提交给您的 v0.1
分支,这样历史现在看起来像:
abc123
2fsf34
32t6e0
54r346
765th4
9r34gg
此处 abc123
是还原提交的 SHA-1,它现在位于 v0.1
分支的 HEAD 上。此提交在功能上撤消了 765th4
提交引入的所有内容。这与完全删除 765th4
提交具有相同的效果,没有潜在的不良副作用。
如果你真的想删除 765th4
提交,你可以进行交互式变基。但是,对于您已经推送到远程的分支,通常不建议这样做。原因是重写历史可能会给除您之外的任何人带来问题,他们可能已经在使用 v0.1
分支。因此,在这里坚持使用 git revert
以获得简单而安全的选择。
如何在推送后从分支中删除特定提交?
假设我在名为 v0.1
的远程存储库中有这样的历史记录(从最新到最旧),我想从 v0.1
中删除 765th4
,而不从中删除它其他分支。我该如何实现?
2fsf34
32t6e0
54r346
765th4
9r34gg
谢谢!
这里最安全的选择是 不是 实际上从 v0.1
分支中删除 765th4
提交,而是 revert 它使用 git revert
。尝试以下命令:
# from v0.1 branch
git revert 765th4
如果您 运行 git log
在 运行 完成以上操作后,您会注意到 new 提交已提交给您的 v0.1
分支,这样历史现在看起来像:
abc123
2fsf34
32t6e0
54r346
765th4
9r34gg
此处 abc123
是还原提交的 SHA-1,它现在位于 v0.1
分支的 HEAD 上。此提交在功能上撤消了 765th4
提交引入的所有内容。这与完全删除 765th4
提交具有相同的效果,没有潜在的不良副作用。
如果你真的想删除 765th4
提交,你可以进行交互式变基。但是,对于您已经推送到远程的分支,通常不建议这样做。原因是重写历史可能会给除您之外的任何人带来问题,他们可能已经在使用 v0.1
分支。因此,在这里坚持使用 git revert
以获得简单而安全的选择。