天天看點

git 遠端操作 git pull git push

git pull

用法:

git pull <遠端主機名> <遠端分支名>:<本地分支名>

常用寫法:

1. 全路徑

git pull origin master:master

取回遠端主機的master分支 與本地的master分支合并

2.省略本地分支

git pull origin master

取回遠端主機名origin的master分支, 并與本地的目前分支合并

實質上,這等同于先做git fetch,再做git merge

git fetch origin

git merge origin/master

3. 省略遠端分支名

在某些場合,Git會自動在本地分支與遠端分支之間,建立一種追蹤關系(tracking)。比如,在git clone的時候,所有本地分支預設與遠端主機的同名分支,建立追蹤關系,也就是說,本地的master分支自動"追蹤"origin/master分支。

Git也允許手動建立追蹤關系。

git branch --set-upstream dev origin/dev

上面指令指定dev分支追蹤origin/dev分支。

如果目前分支與遠端分支存在追蹤關系,git pull就可以省略遠端分支名。

$ git pull origin

上面指令表示,本地的目前分支自動與對應的origin主機"追蹤分支"(remote-tracking branch)進行合并。

4. 省略主機名

如果目前分支隻有一個追蹤分支,連遠端主機名都可以省略。

git push

git push <遠端主機名> <本地分支名>:<遠端分支名>

将<本地的分支> 推送到 <遠端主機名> 的遠端分支

常用寫法: 

1. 省略遠端分支

git push origin master

将本地的master分支推送到遠端主機名origin 的master分支(如果不存在則建立)

2. 省略本地分支

git push origin :master

将本地一個空分支送到遠端的maser分支,實際就是删除遠端分支 等同于git push origin --delete master

3.省略本地分支和遠端分支

git push origin  

如果本地分支和遠端分支之間存在追蹤關系,則本地分支和遠端分支都可以省略

(如果報錯,則可能需要建立追蹤關系   git push --set-upstream origin dev)

留一下一個疑問:如何檢視 這個中追蹤關系呢? git remote show origin (檢視遠端主機的詳情)

4 省略遠端主機名

隻和一個遠端主機名關聯 如:origin

如果目前分支與多個主機存在追蹤關系,則可以使用-u選項指定一個預設主機,這樣後面就可以不加任何參數使用git push。

$ git push -u origin master

上面指令将本地的master分支推送到origin主機,同時指定origin為預設主機,後面就可以不加任何參數使用git push了。

不帶任何參數的git push,預設隻推送目前分支,這叫做simple方式。此外,還有一種matching方式,會推送所有有對應的遠端分支的本地分支。Git 2.0版本之前,預設采用matching方法,現在改為預設采用simple方式。如果要修改這個設定,可以采用git config指令。

git config --global push.default simple

本文轉自殘劍部落格51CTO部落格,原文連結http://blog.51cto.com/cuidehua/1813928如需轉載請自行聯系原作者

cuizhiliang