嘿 - 我有一个感觉非常简单的问题,但是我无法绕过它,尝试找到答案会导致许多类似但又微妙不同的问题的答案。< / p>
我一直在从主人的旧分支上开发一个功能,而其他团队成员则管理着巨大的拉力。现在他们已经完成了,我需要让我的功能准备好提出拉取请求。
我需要从我的分支机构(在10-15个提交中分布在3-4个文件中)进行相关更改,并将它们与master中的大量更改集成在一起(分布在数十个或数百个文件中的数十个文件中)提交)。我的文件版本与其版本之间会发生合并冲突,但它们很容易解决。什么是传统的方式来抓住我的分支(或建立一个结合了主人和旧分支的新分支)并解决冲突?我开始重新调整,但最后必须解决自fork以来在master中发生的每一次提交,这看起来完全没必要且耗时。
谢谢!
答案 0 :(得分:0)
执行此操作的典型方法是git pull master
进入您的分支并解决冲突。然后git push
你的分支。这使拉动请求不那么令人头痛。
答案 1 :(得分:0)
作为TriskalJM stated,通常的方法是git pull master
进入您的分支,然后git push
进入PR。但是,正如您所说,在您的用例中,rebase
可以让您在每次提交的基础上处理冲突。我建议你根据实际结果检查一些方法。
我认为有必要分别处理master
分支和旧功能分支的合并,分别对旧内容进行新的更改。为此,您可以尝试将您在功能分支上所做的更改选择到主服务器上(或者更好地从主服务器创建一个新的分支,在其上进行樱桃采摘,然后将其与结果合并以检查它是否隔离)。如果您对此更清楚,也可以尝试:
feature1
。master
与feature1
合并,处理冲突。feature 1
。master
。 对于具有功能分支的merge
,您可以选中对于首先出现的简单rebase
方法有效的选项。我引用的那个是strategy
和merge
命令的rebase
选项。
使用git rebase ... -s recursive -X theirs
“通过支持他们的版本”(在这种情况下为theirs
= master
)强制冲突的帅哥得以干净利落地自动解决。
注1:请注意,在文档上可能会有点混乱,有一个名为ours
的合并策略和一个名为{{1}的选项称为递归的策略(或ours
,如我的提案中所述)。 theirs
&lt;&gt; git merge ... -s ours