我们正在使用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重新设置为开发会导致冲突吗?
答案 0 :(得分:1)
绝对压缩提交会阻碍修补程序ID的检测,因此rebase无法再保护您免受樱桃选择提交的冲突。 (相反,如果提交序列产生并恢复变化,那么可能通过挤压来消除潜在的冲突 - 但这更像是一个旁边。)