Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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 Squash:它会引起问题吗?_Git - Fatal编程技术网

GIT Squash:它会引起问题吗?

GIT Squash:它会引起问题吗?,git,Git,假设我们有一个名为featurebranch的功能分支。开发人员在该分支的分支中获取他们的票证,然后在功能分支中打开PR 如果发生以下情况: 开发者A分支出功能分支并在分支上开发票证-A 开发人员B然后转到featurebranch,将之前的两个提交压缩为一个 开发者A将ticket-A合并到feature分支 是否存在合并冲突或任何问题?由于ticket-a分支将有两个提交,而功能分支将只有一个提交,因为这两个提交被压缩。如果您有以下内容: Ancestor -- A -- B

假设我们有一个名为
featurebranch
的功能分支。开发人员在该分支的分支中获取他们的票证,然后在
功能分支中打开PR

如果发生以下情况:

  • 开发者A分支出
    功能分支
    并在分支上开发
    票证-A
  • 开发人员B然后转到
    featurebranch
    ,将之前的两个提交压缩为一个
  • 开发者A将
    ticket-A
    合并到
    feature分支

  • 是否存在合并冲突或任何问题?由于
    ticket-a
    分支将有两个提交,而
    功能分支将只有一个提交,因为这两个提交被压缩。

    如果您有以下内容:

    Ancestor -- A -- B
                      \-- C
    
    然后你做一个壁球:

    Ancestor -- AB
            \-- A -- B -- C
    
    您将更改历史分支,并使用新哈希创建新提交。因此,如果您试图合并这两个分支,git将尝试找到它们的共同祖先并从那里开始合并。但是
    A
    不包含
    AB
    所做的所有更改,这可能会导致冲突

    为了解决这个问题,我建议您重新设置另一个分支的基础,以便它包含压缩的提交。您可以通过第二个分支实现这一点:

    git rebase——在AB C分支上