2017-01-03 240 views

回答

-2

混帳拉之間的區別:你居然發出混帳取+混帳合併命令,這將導致一個額外的在你的提交日誌提交和醜陋的合併氣泡。

git pull --rebase:爲了保持存儲庫清潔,您的提交總是在樹頂部,直到您將它們推送到遠程服務器。該命令將應用所有您尚未推送的提交頂部的遠程樹提交允許您的提交是連續的,並且沒有分支

8

我建議您創建一個實驗回購並嘗試命令。自己試驗會讓學習變得更容易。

您會注意到命令序列git stash; git pull; git stash pop將移動未提交更改爲主分支的更新頭。 (這也將做一個正常的合併,所以提交的修改將被合併,而不是重建基礎,假設默認gitconfig)

然而,git pull -rebase將移動具有已經致力於到主分支的更新水頭變化。如果您嘗試運行一個髒活樹這個命令,你會看到錯誤消息:

Cannot pull with rebase: You have unstaged changes. 
Please commit or stash them. 
3

答案很簡單,在這個主題的問題是「沒有」。

git pull --rebasegit pull之間的區別是,第一做了fetch + rebase,第二個是fetch + merge,除非你有一個非默認混帳配置,告訴git pullrebase,而不是合併。在這種情況下,這兩個命令將是相同的。

這兩個命令之間的差異並不以任何方式影響需要存儲和取消未提交的更改。如果你有一個骯髒的工作樹,他們都需要這個,否則他們會錯誤的,告訴你提交或隱藏你的修改。