Master是主分支,并且无法直接合并请求。
Develop是从master分支出来的。
Feature1是Develop分支的分支。
我可以将代码从Feature1分支拉到本地GIT并进行更改,然后在本地提交代码。
现在我有两个选择可以集成更改以开发分支:
为了将来自feature1的代码更改带入开发,我们可以合并squash或将base1重新设置为本地开发,然后将开发推送到服务器。合并壁球不会保留以前的功能提交历史记录。重新定位的位置将保留历史记录。
相反,我们可以将功能1分支推送到服务器,然后在服务器上提出拉取请求,以将来自功能1分支的代码合并到开发分支,而不是将来自功能1的代码本地合并到开发中。合并以开发分支时,来自feature1的提交历史记录会在这里存储或忽略吗?
哪种方法更可取?
答案 0 :(得分:2)
如果您不是唯一从事feature1
工作的人,最好将PR合并到develop
。
重新设定基地将需要强行推进,使您的同事不得不重置自己的feature1
分支。
要保留feature1
的历史记录,请在接受PR时考虑常规合并,而不是“ squash and merge”。
对于develop
到master
来说,您并不是唯一的集成功能,因此建议您使用PR,以合并(而不是重新设置)develop
。
答案 1 :(得分:1)
您的答案取决于将事物合并到主分支的速度。我不是功能分支的忠实拥护者,因为如果多个团队为不同的功能分支编辑相同的文件,它们可能很难合并到母版中。
我们在公司开设分支机构的方式是:
production
-生产中正在运行的当前版本
master
-从此分支中删除候选版本。这是实验性的,但我们只应合并“工作”代码。我们永远不应故意破坏master
。
就是这样。我们的拉取请求针对master
。人们可以使用要素分支,但您应对合并冲突负责。向master
发送的每个拉取请求都需要一张JIRA票证以确保合规性。
答案 2 :(得分:0)
我更喜欢第一个选项,这样一切都会发生冲突,这些冲突将在本地解决,然后再推送给主服务器。