是,我做了很多,我致電集成分支機構。根據pull請求合併到的分支創建分支(通常爲master
),然後按照您希望的順序合併每個pull請求分支。
這是一個扔掉的分支,因爲如果它的存在與否最終並不重要,因爲當pull請求被合併時,相同的提交會被放入master,最後你可以刪除集成分支。
$ git checkout master
$ git pull
$ git checkout -b int/all-the-pull-requests
$ git merge user1/feature-1
$ git merge user2/feature-2
$ git merge user3/feature-3
如果你想添加更多的從您可以再次分支和拉請求被合併到主後,再rebase --onto
移動提交給基於關老爺的。
$ git checkout -b feature/after-integrations
$ git add .; git commit
...
$ git checkout master
$ git pull # pull requests were merged!
$ git checkout feature/after-integrations
$ git rebase --onto master int/all-the-pull-requests feature/after-integrations
$ git branch -D int/all-the-pull-requests # No longer needed
在創建集成分支後,處理個別拉取請求上的更改。
$ git checkout user2/feature2
$ git pull
$ git checkout int/all-the-pull-requests
$ git merge user2/feature2
如果你有
A--B--C (master)
\ \
\ D--F (feature1)
\
G--H (feature2)
將成爲
A--B--C (master) I------------J (int/all-the-pull-requests)
\ \ / /
\ D------F (feature1)/
\ /
G------------------H (feature2)
和更新,以特點2:
A--B--C (master) I------------J--L (int/all-the-pull-requests)
\ \ / //
\ D------F (feature1)//
\ //
G------------------H--K (feature2)
合併
A--B--C------M------------N (master)
\ \ / /
\ D--F (feature1)/
\ \ /
\ I--J--L/(int/all-the-pull-requests)
\ ///
G----H--K--/ (feature2)
和刪除
A--B--C------M--N (master)
\ \ //
\ D--F/(feature1)
G--H---K (feature2)
嗨Sukima,請在這裏澄清你的具體工作流程。我們同時影響多個PR。讓我們假設每個PR中的文件都是互斥的。你如何處理單個PR相關文件的推送?你櫻桃採摘?這是如何爲你制定的? – javadba
爲pull request分支做一個'git pull'然後再合併。合併只會更新自上次合併以來的更改。如果它變得混亂,我刪除集成分支並重新執行。 – Sukima
嗨,我upvoted,因爲這是有幫助的。但我不明白一些細節:也許還有一些評論。你似乎有一堆不同的功能分支:「userN/feature-N」,以及int/all-the-pull-requests。我的關係並不清楚。 – javadba