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。所以為了能夠處理這些提交請求,你需要一個本地分支,通過本地分支你可以獲取這些提交。