Git Pull
據我所知,當你使用git pull時,它將會獲取遠程服務器(你請求的,不管什麼分支)上的代碼,而且當即合併到你的本地廠庫,Pull是一個高等級的請求,默認會支持Fetch和merge的操做,若是不是爲了使用上的方便,你能夠徹底不使用它。git
1
2
3
4
5
|
$git checkout localbranch
$git pull origin master
$git branch
master
*localbranch
|
上面的命令會將遠程服務器上的master分支合併到localbranch中。bash
Git Fetch服務器
fetch和pull很類似,只是fetch不會作任何的合併操做。fetch
1
2
3
4
5
6
|
$git checkout localbranch
$git fetch origin remotebranch
$git branch
master
*localbranch
remotebranch
|
所以,fetch指是獲取remotebranch,而後建立一個本地copy,你不該該直接對這個copy作任何的操做,而應該應該建立一個本地分支,而後在本地分支上進行工做。spa
Git Clonecode
clone將會克隆一個本地廠庫,ci
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的活動分支建立一個本地分支以及遠程跟蹤分支。rem
git rebaseit
這個命令至關的cool,你對當前分支所做的任何改變都被保存到一個臨時區域,所以你的分支將會和改變以前同樣乾淨。若是你用git pull -rebase,git將會獲取遠程的改變,遍歷當前本地分支,而後替換你當前分支的全部改動。io
Finally
若是你在使用過程當中遇到了問題,使用git branch -a,它會顯示本地廠庫的全部分支:本地的,遠程的。這是一個很好的殺手鐗,請記住,git bracches只是一個pointer。因此爲了可以處理這些提交請求,你須要一個本地分支,經過本地分支你能夠獲取這些提交。