GIT Squash:会引起问题吗?

3
假设我们有一个名为feature-branch的功能分支。开发人员为他们的任务从这个分支派生出分支,然后向feature-brach打开PR。
如果发生以下情况:
1. 开发人员A从feature-branch分支中派生出ticket-a分支并进行开发 2. 然后,开发人员B将两个先前的提交合并成一个提交到feature-branch 3. 开发人员A试图将ticket-a分支合并到feature-branch 那么会出现合并冲突或其他问题吗?由于ticket-a分支将有两个提交,而feature-branch只有一个提交,因为两个提交已经被压缩成了一个提交,所以可能会出现问题。
1个回答

3
如果你有以下这样的内容:
Ancestor -- A -- B
                  \-- C

而且你进行了一个压缩:

Ancestor -- AB
        \-- A -- B -- C

您将更改您的历史分支,并创建一个新的提交和一个新的哈希。因此,如果您尝试合并这两个分支,则Git将尝试找到它们的共同祖先,并从那里开始合并。但是A不包含AB的所有更改,这可能会导致冲突。
为解决此问题,我建议您基于其他分支进行变基,以便其包含压缩的提交。您可以通过从第二个分支使用rebase onto来实现此目的:

git rebase --onto AB C branch2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接