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强制推送?_Git_Project Management_Git Merge_Git Rebase_Gitlab - Fatal编程技术网

Git压缩合并还是Git强制推送?

Git压缩合并还是Git强制推送?,git,project-management,git-merge,git-rebase,gitlab,Git,Project Management,Git Merge,Git Rebase,Gitlab,我们正在使用。主分支受保护,只有项目所有者才能向主分支提交/接受合并请求。其他开发人员发送一个合并请求,将他们的代码放入master 当我们发送合并请求(从功能分支到主功能)时,一个开发人员会检查代码。如果有任何建议/意见,开发人员会更新其代码,合并请求也会显示新的提交 然后QA开始对分支进行测试,开发人员修复同一分支中的bug。当所有的工作都完成并且可以继续时,QA会在合并请求中添加一条注释,说明它已经过测试 由于有很多提交,但功能只有一个,为了便于管理,我们希望将其作为单个提交推送 这就是我

我们正在使用。主分支受保护,只有项目所有者才能向主分支提交/接受合并请求。其他开发人员发送一个合并请求,将他们的代码放入master

当我们发送合并请求(从功能分支到主功能)时,一个开发人员会检查代码。如果有任何建议/意见,开发人员会更新其代码,合并请求也会显示新的提交

然后QA开始对分支进行测试,开发人员修复同一分支中的bug。当所有的工作都完成并且可以继续时,QA会在合并请求中添加一条注释,说明它已经过测试

由于有很多提交,但功能只有一个,为了便于管理,我们希望将其作为单个提交推送

这就是我和项目负责人的矛盾之处。我要求项目负责人执行一个
git合并--squash
,但他要求我通过将所有内容压缩到最后一次提交并强制推送来重新设置分支的基础。由于这之后该分支机构将死亡,他的论点是,这不太可能造成任何麻烦

那么,下面哪种方法是最好的


另外,在gitlab中没有GUI选项来执行压缩合并,唯一可用的选项是合并所有提交。这两个操作的结果非常相似,一个在主控上的提交和一个最终将消亡的功能分支

合并挤压迫使项目所有者处理可能出现的冲突。为了避免这个问题,您必须在合并之前在要素分支中合并原点/母版

在此之后,最终结果的唯一区别在于操作后特征分支点的位置:

  • 合并原点/master之后,merge--squash
    :功能分支将指向一个垂死的分支,该分支最终将死亡,但会有点混乱:它已经合并了吗
  • rebase、force push、merge--ff之后,功能分支将指向压缩提交
  • 你必须决定:

    • 强制您“删除”要素分支的过程,使其成为保留要素分支历史的明确选择(通过在重基之前创建新的ref并推送它-可能具有更新的名称:featureA\u merged)
    • 保留所有要素分支但强制您记住/管理已合并的分支的过程

    毕竟,重基和强制推送是一种更清洁的解决方案。您会处理潜在的冲突,并将引用从垂死的分支中移出,这可能会在将来造成麻烦和/或混乱。即使现在做了一些看起来是错误的事情,强制推送。

    这两个操作的结果都非常相似,一个在master上的提交和一个最终将消亡的特性分支

    合并挤压迫使项目所有者处理可能出现的冲突。为了避免这个问题,您必须在合并之前在要素分支中合并原点/母版

    在此之后,最终结果的唯一区别在于操作后特征分支点的位置:

  • 合并原点/master之后,merge--squash
    :功能分支将指向一个垂死的分支,该分支最终将死亡,但会有点混乱:它已经合并了吗
  • rebase、force push、merge--ff之后,功能分支将指向压缩提交
  • 你必须决定:

    • 强制您“删除”要素分支的过程,使其成为保留要素分支历史的明确选择(通过在重基之前创建新的ref并推送它-可能具有更新的名称:featureA\u merged)
    • 保留所有要素分支但强制您记住/管理已合并的分支的过程
    毕竟,重基和强制推送是一种更清洁的解决方案。您会处理潜在的冲突,并将引用从垂死的分支中移出,这可能会在将来造成麻烦和/或混乱。即使现在做了看起来不对劲的事情,力量也会推动