任何人都可以解釋這一點,即使遠程存儲庫在記?git pull --rebase,git rebase和git merge之間的區別
回答
git pull --rebase
是當你想把你的開發分支變成最新的時候的方法 - 這些分支通常不會發布給其他人(除了看看它),所以重寫歷史不是問題,你真的不想在這樣的分支中合併等等。
git merge
執行合併;有關詳細信息,請參閱聯機幫助頁 - 指令中有大量的選項,這些選項在此處解釋太多。
git rebase
執行重新摺疊,即重寫歷史。它會將你的提交到與其他分支不同的地方,臨時刪除它們,從其他分支申請缺少的提交,然後重新提交你的提交。 git rebase
也有一個交互模式,您可以刪除/修改/組合(擠壓)某些提交。
看看http://learn.github.com/p/rebasing.html的一些漂亮的關於底座如何工作的圖表。
注意:git 2.8(2016年3月)將允許'git pull --rebase = interactive command'。請參閱http://stackoverflow.com/a/29717607/6309。 – VonC 2016-01-27 09:37:58
git rebase
允許您將分支從已分化的位置分離出來,並將其重新插入其他分支的頂部。相反,git merge
只是合併來自當前分支中另一個分支的更改,而無需重新插入歷史記錄。
如果沒有衝突,結果是合併和變基之間是相同的,但歷史上是不同的:
(merge branch on master):
master --A--B--C--E
/
branch --D
(rebase branch onto master):
master --A--B--C--D'
在第一種情況下的合併將創建branch
分支合併爲master
,從而創造合併提交,E
。在第二種情況下,D
只需重新插入master
,創建另一個提交,D'
。
git pull --rebase
將從遠程獲取更改,並重新綁定(重新插入)您的更改。它會直接記錄您所做的不在遠程的更改,並從最後一次更改開始重播它們。
- 1. git pull和git pull之間的區別--rebase
- 2. git pull VS git fetch git rebase
- 3. `git rebase foo bar`和`git checkout bar之間的區別; git rebase foo`?
- 4. git rebase upstream/master vs git pull --rebase upstream master
- 5. 'git svn rebase'和'git rebase trunk'之間的區別
- 6. git rebase after pull
- 7. phpstorm git pull --rebase
- 8. git pull,git fetch和git rebase有什麼區別?
- 9. git分支:``git merge master``和``git pull origin master``之間的區別
- 10. 撤銷git pull --rebase?
- 11. Git Workflow和Rebase
- 12. 「git reset」和「git rebase」有什麼區別?
- 13. git rebase i vs git rebase --onto
- 14. 在gerrit下git commit --amend和git rebase之間的區別
- 15. git merge和git fetch之間的區別?
- 16. `git svn rebase` vs`git rebase trunk`
- 17. git pull --rebase not yeilding deseired outcome
- 18. 不是git merge --squash真的git rebase -squash?
- 19. git merge或rebase for stale branch?
- 20. git pull之間的區別。 master vs git merge master
- 21. git rebase vs git rebase <upstream>
- 22. Git rebase flow
- 23. 「git rebase origin」與「git rebase origin/master」
- 24. git branches rebase after rebase
- 25. Git中的rebase和merge狀態如何?
- 26. git Merge和Rebase的不同結果
- 27. git stash pop vs git rebase
- 28. Git合併後git rebase?
- 29. 'git rebase`衝突
- 30. OpenStack:Gerit錯誤與git rebase和merge
沒有'git commit --rebase';你的意思是'git pull --rebase'?或者,'git svn dcommit --no-rebase'? (首先錯過了git-svn標籤) – torek 2012-04-27 05:49:40
感謝您指出錯誤..我更新了這個問題! – 2012-04-27 06:04:58