差異:git clone , git fetch, git pull和git rebase


 

Git Pull
據我所知,當你使用git pull時,它將會獲取遠程服務器(你請求的,無論什么分支)上的代碼,並且立即合並到你的本地廠庫,Pull是一個高等級的請求,默認會支持Fetch和merge的操作,如果不是為了使用上的方便,你可以完全不使用它。

1
2
3
4
5
$git checkout localbranch
$git pull origin master
$git branch
master 
*localbranch

上面的命令會將遠程服務器上的master分支合並到localbranch中。

Git Fetch

fetch和pull很相似,只是fetch不會做任何的合並操作。

1
2
3
4
5
6
$git checkout localbranch
$git fetch origin remotebranch
$git branch
master
*localbranch
remotebranch

因此,fetch指是獲取remotebranch,然后創建一個本地copy,你不應該直接對這個copy做任何的操作,而應該應該創建一個本地分支,然后在本地分支上進行工作。

Git Clone

clone將會克隆一個本地廠庫,

1
2
3
4
5
$ cd  newfolder
$git clone git@github.com:whatever /something .git
$git branch
*master
remotebranch

clone會為它被克隆的遠程repo創建一個名為“origin”的local repo,並為遠程repo的活動分支創建一個本地分支以及遠程跟蹤分支。

git rebase

這個命令相當的cool,你對當前分支所作的任何改變都被保存到一個臨時區域,因此你的分支將會和改變之前一樣干凈。如果你用git pull -rebase,git將會獲取遠程的改變,遍歷當前本地分支,然后替換你當前分支的所有改動。

Finally

如果你在使用過程中遇到了問題,使用git branch -a,它會顯示本地廠庫的所有分支:本地的,遠程的。這是一個很好的殺手鐧,請記住,git bracches只是一個pointer。所以為了能夠處理這些提交請求,你需要一個本地分支,通過本地分支你可以獲取這些提交。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM