合并--squash会导致与已经开发的樱桃选择冲突

时间:2017-07-07 12:44:30

标签: git

我们正在使用git flow模型合并功能分支通过pull请求进入develop分支,之后它们已被重新定义为开发。

有时一个功能分支樱桃选择另一个,其中一个将合并到开发中。当第二个然后重新开发时,那些樱桃选择被快速转发。

我的问题:当前我们只是使用合并(很容易被替换为--ff-only我假设我们总是重新加入),但是我们是否也可以使用-squash --ff-only?当那些承诺已经在那里进行开发时,这会导致冲突吗?

我担心会出现其他冲突的原因如下:让我们假设commit1和commit2都在一个文件中进行更改。如果他们被合并到开发中,然后樱桃选择他们的第二个分支进行了变换,它会认识到那两个提交已经在那里。

如果这两个提交被压扁并且它试图在它之上进行rebase,它将不再看到它,并且当在rebase之上重放第一个提交时已经包含commit2并因此导致冲突。

feat1: ... A -- B 
feat2  ... A (cherry picked) -- B (cherry picked)

feat1与壁球合并为开发

develop .... S

如果A和B都编辑同一个文件,那么将boot2重新设置为开发会导致冲突吗?

1 个答案:

答案 0 :(得分:1)

绝对压缩提交会阻碍修补程序ID的检测,因此rebase无法再保护您免受樱桃选择提交的冲突。 (相反,如果提交序列产生并恢复变化,那么可能通过挤压来消除潜在的冲突 - 但这更像是一个旁边。)