gpt4 book ai didi

git - 我如何压缩有 child 的分支上的提交

转载 作者:太空狗 更新时间:2023-10-29 14:38:03 26 4
gpt4 key购买 nike

所以我有一个 master 和一个继续它的 bugfix 分支的情况。我尝试压缩 master 上的一些提交,然后在其上重新定位错误修复,但我遇到了 merge 冲突。正确的方法是什么?我在本地工作,没有 Remote 。

看起来像这样:

A - B - C - D - E - F [master]
\
G - H - I - J - K [bugfix]

我想压缩 A - B - C - D - E - F 并且仍然有错误修复继续压缩的主分支。

最佳答案

Jubob 关于共享历史的观点非常重要,因为强烈反对 rebase 或压缩共享提交。

我假设您正在处理本地提交。

假设你是这样开始的:

[master] A---B---C---D
\
[bugfix] 1---2---3

并且您决定将 BCD 压缩到一个新的提交 D'

[master] A---D'
\
[bugfix] B---C---D---1---2---3

请注意,提交 BCD 仍保留在 bugfix 分支中。如果您只是将 bugfix rebase 到 master 上,Git 会尝试这样做:

[master] A---D'
\
[bugfix] B---C---D---1---2---3

但是 BCD 引入的更改已经包含在 D' 中。你真正想要的是这样的:

[master] A---D'
\
[bugfix] 1---2---3

您可以使用 rebase--onto 选项来完成此操作:

git rebase --onto master D bugfix

D 应该是 bugfix 中的最新提交,在 rebase 时不应该包括在内。

关于git - 我如何压缩有 child 的分支上的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27866413/

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