git遠程命令

Copy from:
http://www.ruanyifeng.com/blog/2014/06/git_remote.html

在當前git倉庫中,#git remote -v;查看fetch和push地址,例如:
#git remote -v
origin    https://github.com/shenghp312/hello-world.git (fetch)
origin    https://github.com/shenghp312/hello-world.git (push)

git pull = git fetch + git merge

git fetch從遠程獲取最新版本到本地,而pull不是和遠程分支直接對話的。
git pull在fetch後,直接merge。
所以,最好先fetch,再選擇性的進行merge。
git push,默認推送到master分支,如果有多個分支,那麼多個分支一起推送。

下面圖片:http://www.ruanyifeng.com/blog/2014/06/git_remote.html
git
一、clone
#git clone <版本庫網址>
#git clone https://github.com/jquery/jquery.git

二、remote
爲了便於管理,Git要求每個遠程主機都必須指定一個主機名。
git remote就用於管理主機名。
1.不帶選項的時候,列出所有遠程主機
#git remote
origin
2.使用-v選項,可以看到遠程主機的網址
#git remote -v
origin    https://github.com/shenghp312/hello-world.git (fetch)
origin    https://github.com/shenghp312/hello-world.git (push)
當前只有一臺主機,叫做Origin,以及它的地址。
clone版本的時候,所使用的遠程主機被Git自動命名爲Origin。如果想改變,可以在clone時使用-o選項。
3.查看主機詳細信息
#git remote show <主機名>
#git remote show origin
4.git remote add <主機名> <主機網址>
5.git remote rm <主機名>
6.git remote rename <原主機名> <新主機名>

7. checkout
#git checkout -b <本地分支名> <遠程主機名>/<遠程分支名>

三、fetch
一旦遠程主機的版本庫有了更新(Git叫commit),需要將這些更新取回本地,這是就需要git fetch命令。
git fetch通常用來查看其他人的更新,取回的代碼樹對你本地的開發代碼沒有影響。
默認情況下,git fetch取回所有分支。如果想取回特定分支,可以指定。
#git fetch <主機名> <分支名>
比如#git fetch origin master

所取回的更新,在本地機器上可以使用<主機名>/<分支名>的方式讀取。
#git branch -r #用來查看遠程分支

可以使用merge或者rebase在本地分支上面合併遠程分支。

四、pull
取回遠程主機某個分支的更新,再與本地指定的分支合併。
#git pull <遠程主機名> <遠程分支名>:<本地分支名>
#git pull origin master:master
如果遠程分支與當前分支合併,則冒號後面的本地分支名可以省略。

在某些場合,Git會自動在本地分支與遠程分支之間建立一種追蹤關係(tacking)。比如,在git clone的時候,所有本地分支默認與默認的遠程主機的同名分支,建立追蹤關係。
也就是說,本地master分支自動“追蹤”origin/master分支。
Git也允許手動建立追蹤關係
#git branch --set-upstream master origin/master

如果當前分支與遠程分支存在追蹤關係,那麼pull命令就可以省略分支名。
#git pull origin

如果當前分支只有一個追蹤分支,那麼遠程主機名也可以省略。

如果遠程主機刪除了某個分支,默認情況下,git pull不會在拉取遠程分支的時候,刪除對應的本地分支。
這是爲了方式,由於其它人操作了遠程主機,導致git pull不知不覺刪除了本地分支。
可以使用-p參數改變這個行爲。
#git pull -p
等同於:
#git fetch --prune origin
#git fetch -p

五、push
用於將本地分支的更新,推送到遠程主機。
#git push <遠程主機名> <本地分支名>:<遠程分支名>   #注意分支名稱的順序
如果省略遠程分支名,則將本地分支推送到與之存在追蹤關係的遠程分支。如果該遠程分支不存在,則建立。
#git push origin master

#git push origin :master #刪除遠程分支master,與下面等價
#git push origin --delete master

如果當前分支與遠程分支之間存在追蹤關係,則本地分支和遠程分支名都可以省略。
#git push origin
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章