Git rebase for Unnecessary Merge
April 27, 2016
Git
Tips
FAQ
前言
在 Open Source 專案的使用,在本地端或是自己 fork 過去的 repository 都有機會要更新至原專案的最新狀態。
所以常常會用 git pull origin master
,或許對我們來說與本地端沒有 conflicts 就好。但是等到之後要做 PR 的時候就很容易被檢視 git log 是否乾淨。
Why?
所謂的 git pull
其實是 git fetch
& git merge
,也就是說這裡會出現不必要的 merge 。如果只是在本地端測試等等當然沒有問題,但是如果要 PR 回原先的專案,這個 merge commit 就顯得多餘,也會造成 git workflow 顯得雜亂。比較好的做法是:
$ git pull --rebase upstream master
$ git push origin master -f
-f
: force updated, that’s because you only rebase the local, but origin doesn’t not rebase.