發起一個新的PR(pull request)比較容易,在網頁上點擊就能夠,注意選擇好目標分支。git
接下來,會進入review的階段,這個階段可能會比較漫長,review的comments和你的從新修改commit,甚至包括replyweb
在這個漫長的階段,PR要merge的目標分支可能又會又不少的提交,即便你的PR被review經過了,解決衝突也是一件麻煩的事情,你能夠選擇在相似GitHub的網站上經過web的方式修改衝突(若是衝突比較少仍是能夠的),另外一種方式就是在本地解決衝突(有IDE的幫助)再push上去。bash
接下來,介紹一下在這個漫長的PR階段,如何保持代碼在最小的衝突狀況下,而且保持commit數量只有一個(不少人要求PR的commit只有一個)網站
好比,本身的分支是 feature/test
,目標分支是 dev
ui
保證本地的 feature/test
和 dev
分支,代碼都是最新的spa
切換到 feature/test
分支,執行code
git rebase dev
複製代碼
git add .
複製代碼
用來標記衝突的文件已經解決。string
git status
看一下,若是文件都是綠色的,就能夠繼續執行rebasegit rebase --continue
複製代碼
用來讓rebase繼續執行。若是還出現衝突,請反覆執行第3,4步。it
git reset --soft [commit-id]
複製代碼
這裏的 [commit-id] 指的是 feature/test
和 dev
分支的共同父節點。class
git commit -m "just test"
複製代碼
git push -f origin feature/test
複製代碼
反覆執行以上的步驟,來度過可能很漫長的PR review階段,直到最後成功merge到目標分支。