Git用法之遠程倉庫

遠程倉庫是指託管在因特網或其他網絡中的你的項目的版本庫。

查看遠程倉庫
如果想查看你已經配置的遠程倉庫服務器,可以運行 git remote 命令。 它會列出你指定的每一個遠程服務器的簡寫。 如果你已經克隆了自己的倉庫,那麼至少應該能看到 origin - 這是 Git 給你克隆的倉庫服務器的默認名字
你也可以指定選項 -v,會顯示需要讀寫遠程倉庫使用的 Git 保存的簡寫與其對應的 URL。
$ git remote -v

添加遠程倉庫
運行 git remote add <shortname> <url> 添加一個新的遠程 Git 倉庫,同時指定一個你可以輕鬆引用的簡寫:
$ git remote
origin
$ git remote add pb https://github.com/paulboone/ticgit
現在你可以在命令行中使用字符串 pb 來代替整個 URL。 例如,如果你想拉取 Paul 的倉庫中有但你沒有的信息,可以運行 git fetch pb:
$ git fetch pb
現在 Paul 的 master 分支可以在本地通過 pb/master 訪問到 - 你可以將它合併到自己的某個分支中,或者如果你想要查看它的話,可以檢出一個指向該點的本地分支。 

從遠程倉庫中抓取和拉取
從遠程倉庫中獲得數據,可以執行:
$ git fetch [remote-name]
這個命令會訪問遠程倉庫,從中拉取所有你還沒有的數據。 執行完成後,你將會擁有那個遠程倉庫中所有分支的引用,可以隨時合併或查看。
如果你使用 clone 命令克隆了一個倉庫,命令會自動將其添加爲遠程倉庫並默認以 “origin” 爲簡寫。 所以,git fetch origin 會抓取克隆(或上一次抓取)後新推送的所有工作。 必須注意 git fetch 命令會將數據拉取到你的本地倉庫 - 它並不會自動合併或修改你當前的工作。 當準備好時你必須手動將其合併入你的工作。
如果你有一個分支設置爲跟蹤一個遠程分支(閱讀下一節與 Chapter 3 瞭解更多信息),可以使用 git pull 命令來自動的抓取然後合併遠程分支到當前分支。 這對你來說可能是一個更簡單或更舒服的工作流程;默認情況下,git clone 命令會自動設置本地 master 分支跟蹤克隆的遠程倉庫的 master 分支(或不管是什麼名字的默認分支)。 運行 git pull 通常會從最初克隆的服務器上抓取數據並自動嘗試合併到當前所在的分支。

推送到遠程倉庫
當你想分享你的項目時,必須將其推送到上游。 這個命令很簡單:git push [remote-name] [branch-name]。 當你想要將 master 分支推送到 origin 服務器時(再次說明,克隆時通常會自動幫你設置好那兩個名字),那麼運行這個命令就可以將你所做的備份到服務器:
$ git push origin master
只有當你有所克隆服務器的寫入權限,並且之前沒有人推送過時,這條命令才能生效。 當你和其他人在同一時間克隆,他們先推送到上游然後你再推送到上游,你的推送就會毫無疑問地被拒絕。 你必須先將他們的工作拉取下來並將其合併進你的工作後才能推送。

查看遠程倉庫
如果想要查看某一個遠程倉庫的更多信息,可以使用 git remote show [remote-name] 命令。 如果想以一個特定的縮寫名運行這個命令,例如 origin,會得到像下面類似的信息:
$ git remote show origin
它同樣會列出遠程倉庫的 URL 與跟蹤分支的信息。 這些信息非常有用,它告訴你正處於 master 分支,並且如果運行 git pull,就會抓取所有的遠程引用,然後將遠程 master 分支合併到本地 master 分支。 它也會列出拉取到的所有遠程引用。

遠程倉庫的移除與重命名
如果想要重命名引用的名字可以運行 git remote rename 去修改一個遠程倉庫的簡寫名。 例如,想要將 pb 重命名爲 paul,可以用 git remote rename 這樣做:
$ git remote rename pb paul
值得注意的是這同樣也會修改你的遠程分支名字。 那些過去引用 pb/master 的現在會引用 paul/master。
如果因爲一些原因想要移除一個遠程倉庫 - 你已經從服務器上搬走了或不再想使用某一個特定的鏡像了,又或者某一個貢獻者不再貢獻了 - 可以使用 git remote rm :
$ git remote rm paul




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