应该用什么git命令为PR准备一个分支?
嘿,我有一个感觉非常简单的问题,但我无法绕过它,试图找到答案会导致很多类似但又微妙不同的问题的答案。应该用什么git命令为PR准备一个分支?
我一直在研究一个旧的分支关闭功能,而其他团队成员管理一个巨大的拉。现在他们完成了,我需要让我的功能准备好提出请求。
我需要从我的分支(它跨越10-15次提交的3-4个文件)进行相关更改,并将它们与主站中的大量更改集成在一起(分布在几十个或几百个文件中)的承诺)。我的版本的文件和版本之间会发生合并冲突,但它们很容易解决。什么是传统的方式来抓住我的分支(或建立一个结合主+旧分支的新分支)并解决冲突?我开始进行重组,但最终不得不解决了叉子以来发生在主人身上的每一次提交,这似乎完全没有必要和耗时。
谢谢!
由于TriskalJM stated通常的做法是将git pull master
放入你的分支,然后git push
然后PR。但是,正如您所说,在您的使用案例中,rebase
可能会让您以每次提交为基础处理冲突。我建议您根据实际结果检查一些方法。
我认为合理处理master
分支和旧功能分支的合并是分开对旧功能进行新修改的结果。为此,您可以试着挑选您在功能分支上对主设备所做的更改(或者更好地从主设备创建一个新分支,对其进行樱桃挑选,然后合并,然后结果进行检查,以隔离它)。如果这对你更加清晰,也可以尝试,而不是:
- 从特征做一个新的分支但从最后的更改之前提交。我们称之为
feature1
。与合并,处理冲突。 - Cherrypick 您的提交从功能
feature 1
。 - 检查结果并发布到
master
。
对于merge
与功能分支,你可以检查一个选项是,在第一来给你简单rebase
方法有效了。我所指的是merge
和rebase
命令的strategy
选项。
使用git rebase ... -s recursive -X theirs
“势力冲突的帅哥是自动解决通过支持他们的版本干净”(即theirs
= master
在这种情况下)。
注1:注意,可能是在文档有点混乱,存在一个名为ours
合并战略,并称为递归的选项的战略要求ours
(或theirs
在我的建议)。 git merge ... -s ours
<>git merge ... -s recursive -X ours
要么将主人合并到您的分支,要么将您的分支重新分配到主人。 – knittl
使用提交创建补丁并应用于新分支 – MaNKuR