Git 初次使用(4)

遠程倉庫的使用

查看遠程倉庫

如果想查看你已經配置的遠程倉庫服務器,可以運行 git remote 命令。 它會列出你指定的每一個遠程服務器的簡寫。 如果你已經克隆了自己的倉庫,那麼至少應該能看到 origin - 這是 Git 給你克隆的倉庫服務器的默認名字:

$ git clone https://github.com/schacon/ticgit
Cloning into 'ticgit'...
remote: Reusing existing pack: 1857, done.
remote: Total 1857 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1857/1857), 374.35 KiB | 268.00 KiB/s, done.
Resolving deltas: 100% (772/772), done.
Checking connectivity... done.
$ cd ticgit
$ git remote
origin

你也可以指定選項 -v,會顯示需要讀寫遠程倉庫使用的 Git 保存的簡寫與其對應的 URL。

$ git remote -v
origin	https://github.com/schacon/ticgit (fetch)
origin	https://github.com/schacon/ticgit (push)

添加遠程倉庫

我在之前的章節中已經提到並展示瞭如何添加遠程倉庫的示例,不過這裏將告訴你如何明確地做到這一點。 運行 git remote add <shortname> <url> 添加一個新的遠程 Git 倉庫,同時指定一個你可以輕鬆引用的簡寫:

$ git remote
origin
$ git remote add pb https://github.com/paulboone/ticgit
$ git remote -v
origin	https://github.com/schacon/ticgit (fetch)
origin	https://github.com/schacon/ticgit (push)
pb	https://github.com/paulboone/ticgit (fetch)
pb	https://github.com/paulboone/ticgit (push)

現在你可以在命令行中使用字符串 pb 來代替整個 URL。 例如,如果你想拉取 Paul 的倉庫中有但你沒有的信息,可以運行 git fetch pb

$ git fetch pb
remote: Counting objects: 43, done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 43 (delta 10), reused 31 (delta 5)
Unpacking objects: 100% (43/43), done.
From https://github.com/paulboone/ticgit
 * [new branch]      master     -> pb/master
 * [new branch]      ticgit     -> pb/ticgit

現在 Paul 的 master 分支可以在本地通過 pb/master 訪問到 - 你可以將它合併到自己的某個分支中,或者如果你想要查看它的話,可以檢出一個指向該點的本地分支。 

從遠程倉庫中抓取與拉取

就如剛纔所見,從遠程倉庫中獲得數據,可以執行:

$ git fetch [remote-name]

這個命令會訪問遠程倉庫,從中拉取所有你還沒有的數據。 執行完成後,你將會擁有那個遠程倉庫中所有分支的引用,可以隨時合併或查看。

如果你使用 clone 命令克隆了一個倉庫,命令會自動將其添加爲遠程倉庫並默認以 “origin” 爲簡寫。 所以,git fetch origin 會抓取克隆(或上一次抓取)後新推送的所有工作。 必須注意 git fetch 命令會將數據拉取到你的本地倉庫 - 它並不會自動合併或修改你當前的工作。 當準備好時你必須手動將其合併入你的工作。

如果你有一個分支設置爲跟蹤一個遠程分支,可以使用 git pull 命令來自動的抓取然後合併遠程分支到當前分支。 這對你來說可能是一個更簡單或更舒服的工作流程;默認情況下,git clone 命令會自動設置本地 master 分支跟蹤克隆的遠程倉庫的 master 分支(或不管是什麼名字的默認分支)。 運行 git pull 通常會從最初克隆的服務器上抓取數據並自動嘗試合併到當前所在的分支。

推送到遠程倉庫

當你想分享你的項目時,必須將其推送到上游。 這個命令很簡單:git push [remote-name] [branch-name] 當你想要將 master 分支推送到 origin 服務器時(再次說明,克隆時通常會自動幫你設置好那兩個名字),那麼運行這個命令就可以將你所做的備份到服務器:

$ git push origin master

只有當你有所克隆服務器的寫入權限,並且之前沒有人推送過時,這條命令才能生效。 當你和其他人在同一時間克隆,他們先推送到上游然後你再推送到上游,你的推送就會毫無疑問地被拒絕。 你必須先將他們的工作拉取下來並將其合併進你的工作後才能推送。


發佈了48 篇原創文章 · 獲贊 12 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章