(轉載)git pull origin master與git pull --rebase origin master的區別
請移步原文
https://www.jianshu.com/p/dc367c8dca8e
1.git pull
git pull = git fetch + git merge FETCH_HEAD
git pull --rebase = git fetch + git rebase FETCH_HEAD
git fetch : 從遠端分支拉取程式碼,可以得到遠端分支上最新的程式碼。
所以git pull origin master與git pull --rebase origin master的區別主要是在遠端與原生程式碼的合併上面了。
2.merge 和 rebase
現在我們有這樣的兩個分支,test(本地)和master(遠端),假設遠端的master的程式碼已經更改了(在B基礎上變動:C,F),test的程式碼更改了要提交程式碼(在B基礎上變動:D,E)
提交如下:
D---E test
/
A---B---C---F--- master
在master執行git merge test,然後會得到如下結果:
D--------E
/ \
A---B---C---F----G--- test, master
在master執行git rebase test,然後得到如下結果:
A---B---D---E---C‘---F‘--- test, master
merge操作會生成一個新的節點,之前的提交分開顯示。
而rebase操作不會生成新的節點,是將兩個分支融合成一個線性的提交。
3.rebase好處
想要更好的提交樹,使用rebase操作會更好一點。
這樣可以線性的看到每一次提交,並且沒有增加提交節點。
merge 操作遇到衝突的時候,當前merge不能繼續進行下去。手動修改衝突內容後,add 修改,commit 就可以了。
而rebase 操作的話,會中斷rebase,同時會提示去解決衝突。
解決衝突後,將修改add後執行git rebase –continue繼續操作,或者git rebase –skip忽略衝突。
git rebase和git merge效果一樣,原理不同,git rebase過程相比較git merge合併整合得到的結果沒有任何區別,但是通過git rebase衍合能產生一個更為整潔的提交歷史。
相關文章
- git 上傳專案 報錯 git pull --rebase origin masterGitAST
- git merge origin master git merge origin/master區別GitAST
- git pull如果提示merge衝突,先進行git reset --hard origin/master 後再git pullGitAST
- 在Git中,origin / master與origin master之間有什麼區別?GitAST
- homebrew update 出現Failure while executing: git pull --quiet origin refs/heads/master:refs/remotes/origin/master解決方案AIWhileGitUIASTREM
- git - git push origin master 報錯GitAST
- Git branching: master vs. origin/master vs. remotes/origin/masterGitASTREM
- Git 的origin和master分析GitAST
- git關於origin和masterGitAST
- 簡單對比git pull和git pull --rebase的使用Git
- git rebase masterGitAST
- git學習:關於origin和masterGitAST
- 對 Git 分支 master 和 origin/master 的一些認識GitAST
- Git fetch和git pull的區別Git
- homebrew安裝問題(Failed during: git fetch origin master:refs/remotes/origin/master --tags --force)AIGitASTREM
- 初次git提交程式碼報錯:Push to origin/master was rejectedGitAST
- Git撤銷本次pull rebase(變基) 回退到pull前的程式碼Git
- Git pull errorGitError
- git push origin master 時出現報錯 error: src refspec master does not match any error: failed to push someGitASTErrorAI
- git merge 與 git rebase的區別Git
- git pull命令模式Git模式
- git中出現”the requested upstream branch ‘origin/master‘ does not exist“問題的解決GitAST
- git rebase master 分支出現一堆 ^MGitAST
- GIT使用過程出現(master|REBASE 1/10)GitAST
- git rebase後出現(master|REBASE 1/10)的解決辦法GitAST
- git pull 衝突解決Git
- git fetch & pull詳解Git
- Git 拉取 origin 分支Git
- window設定定時執行 git 更新(git pull)Git
- git pull衝突的解決方案Git
- git pull免密碼拉取Git密碼
- 【HBase】start master 與 start master --backup 的區別AST
- 一文讀懂 Git fetch 和 Git pull 的終極區別(帶實驗結果)Git
- Ubuntu git pull 出現Permission denied ErrorUbuntuGitError
- git merge和rebase的區別Git
- git push --set-upstream originGit
- Git應用詳解第六講:Git協作與Git pull常見問題Git
- git 從master建立新的分支GitAST