将变更从开发合并到主分支的最佳方法是什么?

时间:2019-10-08 04:16:30

标签: git

Master是主分支,并且无法直接合并请求。

Develop是从master分支出来的。

Feature1是Develop分支的分支。

我可以将代码从Feature1分支拉到本地GIT并进行更改,然后在本地提交代码。

现在我有两个选择可以集成更改以开发分支:

  1. 为了将来自feature1的代码更改带入开发,我们可以合并squash或将base1重新设置为本地开发,然后将开发推送到服务器。合并壁球不会保留以前的功能提交历史记录。重新定位的位置将保留历史记录。

  2. 相反,我们可以将功能1分支推送到服务器,然后在服务器上提出拉取请求,以将来自功能1分支的代码合并到开发分支,而不是将来自功能1的代码本地合并到开发中。合并以开发分支时,来自feature1的提交历史记录会在这里存储或忽略吗?

哪种方法更可取?

3 个答案:

答案 0 :(得分:2)

如果您不是唯一从事feature1工作的人,最好将PR合并到develop
重新设定基地将需要强行推进,使您的同事不得不重置自己的feature1分支。

要保留feature1的历史记录,请在接受PR时考虑常规合并,而不是“ squash and merge”。

对于developmaster来说,您并不是唯一的集成功能,因此建议您使用PR,以合并(而不是重新设置)develop

答案 1 :(得分:1)

您的答案取决于将事物合并到主分支的速度。我不是功能分支的忠实拥护者,因为如果多个团队为不同的功能分支编辑相同的文件,它们可能很难合并到母版中。

我们在公司开设分支机构的方式是: production-生产中正在运行的当前版本 master-从此分支中删除候选版本。这是实验性的,但我们只应合并“工作”代码。我们永远不应故意破坏master

就是这样。我们的拉取请求针对master。人们可以使用要素分支,但您应对合并冲突负责。向master发送的每个拉取请求都需要一张JIRA票证以确保合规性。

答案 2 :(得分:0)

我更喜欢第一个选项,这样一切都会发生冲突,这些冲突将在本地解决,然后再推送给主服务器。