Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用git重新调整非线性提交链_Git_History_Rebase - Fatal编程技术网

使用git重新调整非线性提交链

使用git重新调整非线性提交链,git,history,rebase,Git,History,Rebase,在打开原始回购请求之前,我想稍微润色一下我的(凌乱的)功能分支。我有大约100个提交,我想合并成3或4个。所有提交都已推送到我自己的远程repo。由于我想在自己的回购协议中保留许多承诺,我在分叉原始回购协议的地方创建了一个新分支。这个分支应该包含我的工作的一个精确副本,但提交次数较少 不幸的是,在合并提交(x)时,将当前头部合并到新分支并应用rebase-i失败,并告诉我它无法应用修补程序。假设我的历史记录如下所示: o--o--o--o--o--o-----x

在打开原始回购请求之前,我想稍微润色一下我的(凌乱的)功能分支。我有大约100个提交,我想合并成3或4个。所有提交都已推送到我自己的远程repo。由于我想在自己的回购协议中保留许多承诺,我在分叉原始回购协议的地方创建了一个新分支。这个分支应该包含我的工作的一个精确副本,但提交次数较少

不幸的是,在合并提交(
x
)时,将当前头部合并到新分支并应用
rebase-i
失败,并告诉我它无法应用修补程序。假设我的历史记录如下所示:

o--o--o--o--o--o-----x
                \     \
                 o--o--o--o--o

有什么想法可以让我通过这次提交吗?

这应该与
git rebase-I-p commit一起工作,但代价是重新进行合并提交(即,重新修复合并冲突)

从帮助中:

-p, --preserve-merges try to recreate merges instead of ignoring them

但是,在您的情况下,只需修复合并冲突并继续重新基址就可以实际工作。

通常认为有许多小提交而不是一个大的代码炸弹是一种良好的做法。将100个提交压缩成3或4个对我来说听起来有点可疑。特别是如果你想保留它们;它们似乎有一些价值。