Git由淺入深之遠端主機(git remote)

熊建剛發表於2017-04-20

我們知道無論是分散式版本控制系統還是集中式版本控制系統,如果要實現多人協作,都需要一個遠端伺服器,具體針對某一專案來說,就是一個遠端倉庫。
無論使用什麼版本控制工具,對於每一個成員而言,無外乎就是共享資料(push or pull),而這些協作都需要通過一個處於遠端主機上的遠端倉庫完成。本篇主要介紹Git如何與遠端主機進行操作,主要包括:新增和移除遠端主機,新增遠端倉庫,管理遠端分支等。

新增遠端主機(git remote add / git clone)

我們首先要了解如何顯示地新增一個遠端主機,在Git中有兩種方式新增遠端主機:可以分為顯式或隱式。
在未新增遠端主機之前,檢視主機資訊為空:

Git由淺入深之遠端主機(git remote)
檢視遠端主機資訊

隱式新增(git clone)

隱式新增遠端主機的方式就是使用git clone <遠端地址>指令,在克隆遠端倉庫的同時,
會自動新增該遠端主機到當前目錄,並且預設主機名為origin:

Git由淺入深之遠端主機(git remote)
隱式新增遠端主機

檢視資訊:

Git由淺入深之遠端主機(git remote)
檢視遠端主機資訊

顯示新增(git remote add)

很多時候我們也需要顯示新增遠端主機,這需要使用git remote add <主機別名> <遠端地址>指令顯式新增一個遠端主機:

Git由淺入深之遠端主機(git remote)
顯式新增遠端主機

指令中,主機別名引數為自定義指定,遠端地址即遠端伺服器上的訪問地址。

再檢視其主機資訊,則會有如下顯示:

Git由淺入深之遠端主機(git remote)
檢視遠端主機資訊

另一點我們需要清楚的是,可以為某一目錄指定任意數量遠端主機。

檢視遠端主機資訊(git remote)

我們可以使用git remote指令檢視當前倉庫指定的所有遠端主機的簡要資訊:別名列表,
當然還有新增-v選項,檢視詳細資訊列表:

Git由淺入深之遠端主機(git remote)
檢視遠端主機資訊

檢視特定主機資訊(git remote show)

我們也可以檢視某一特定遠端主機的詳細資訊,使用git remote show <主機別名>如:

Git由淺入深之遠端主機(git remote)
檢視特定遠端主機資訊

如上,我們可以看到詳細資訊,遠端地址,遠端所有分支,
及在各本地分支上使用git pullgit push指令操作時對應的遠端分支。

資料共享(git fetch & git pull & git push)

新增遠端主機後,我們可以與主機共享程式碼或檔案。

git fetch

使用git fetch <主機名> [遠端分支,可選]:[新建本地分支,可選]指令,即會將該主機地址對應的遠端倉庫中所有資料(包括所有分支)拉取到本地,前面提到的隱式新增遠端主機git clone方式已包含這一過程:

Git由淺入深之遠端主機(git remote)
git fetch

如上,我們已經將遠端react倉庫的所有分支,下載到本地的對應分支(此處只有master分支,其下載到本地的react/master分支),我們可以將這些本地分支合併到其他分支或在這些本地分支的基礎上檢出(check out)新分支。

當指定遠端分支名時,如下:

Git由淺入深之遠端主機(git remote)
git remote

將遠端origin倉庫的master分支下載到本地並新建一個本地分支temp。

git pull

除了使用git fetch指令拉取遠端資料,還可以使用git pull <主機名> <遠端分支>指令拉取遠端特定分支的所有資料:

Git由淺入深之遠端主機(git remote)
git pull remote

其與git fetch的差別有兩點:

  • gi pull需要指定特定遠端分支引數
  • git pull指令會自動拉取資料並將其合併至當前分支,而git fetch只是拉取所有資料及分支,不影響本地資料,我們需要手動合併。

git push

git fetchgit pull對應的另一個指令則是git push <主機名> <本地分支>,使用該指令可以向遠端推送分支資料:

Git由淺入深之遠端主機(git remote)
git push remote

重新命名遠端主機別名(git remote rename)

Git也支援我們重新命名之前新增過的遠端主機別名:


    git remoet rename <舊主機別名> <新別名>複製程式碼

Git由淺入深之遠端主機(git remote)
git remote rename

刪除遠端主機別名(git remote remove|rm)

使用git remote remove|rm <主機別名>指令刪除遠端主機:

Git由淺入深之遠端主機(git remote)
git remote remove

本篇關於Git遠端主機(remote)的相關介紹就結束了,其中涉及到部分Git分支相關操作,在下篇將詳細進行介紹。

更多相關閱讀請移步

相關文章