Git remote 遠程倉庫鏈接管理

  • 2021 年 12 月 17 日
  • 筆記

SVN 使用單個集中倉庫作為開發人員的通訊樞紐,通過在開發人員的工作副本和中央倉庫之間傳遞變更集來進行協作。 這與 Git 的分散式協作模型不同,後者為每個開發人員提供了自己的倉庫副本,並具有自己的本地歷史記錄和分支結構。 用戶通常需要共享一系列提交而不是單個變更集。 Git 允許我們在倉庫之間共享整個分支,而不是將變更集從工作副本提交到中央倉庫。

 

git remote 命令是負責同步更改的更廣泛系統的一部分。 通過 git remote 命令註冊的記錄與 git fetch、git push 和 git pull 命令結合使用。 這些命令都有自己的同步職責,可以在相應的鏈接上進行探索。

git remote 命令

git remote命令允許您創建、查看和刪除到其他倉庫的連接。遠程連接更像書籤,而不是直接鏈接到其他倉庫。它們不是提供對另一個倉庫的實時訪問,而是作為一個簡寫的名稱,可用於引用寫起來比較繁瑣的URL。

例如,下圖顯示了從本地的倉庫到中央倉庫和另一個開發人員的倉庫的兩個遠程連接。我們可以將origin和john名稱傳遞給其他Git命令,而不是傳遞它們的完整url來引用它們。

 

 

 

git remote 使用概述

git remote 命令本質上是一個介面,用於管理存儲在倉庫的 ./.git/config 文件中的遠程條目列表。 以下命令用於查看遠程列表的當前狀態。

查看 git remote 配置

$ git remote

 

列出與其他倉庫的遠程連接。

$ git remote -v

 

與上述命令相同,但包括每個連接的 URL。

創建和修改 git 遠程配置

git remote 命令也是一種方便用於修改倉庫的 ./.git/config 文件的方法。 下面顯示的命令可讓管理與其他倉庫的連接。 以下命令將修改倉庫的 .git/config 文件。 以下命令的結果也可以通過文本編輯器直接編輯 .git/config 文件來實現。

$ git remote add <name> <url>

 

創建到遠程存儲庫的新連接。添加遠程鏈接後,就可以使用<name>作為其他Git命令中<url>的替代方式。

下面的命令是用來移除名為<name>的遠程倉庫的鏈接

$ git remote rm <name>

 

除此之外,還可以將遠程倉庫的鏈接名稱從<old-name>重命名為<new-name>。

git remote rename <old-name> <new-name>

 


git remote 命令討論

Git旨在為每個開發人員提供一個完全隔離的開發環境。這意味著資訊不會在存儲庫之間自動來回傳遞。相反,開發人員需要手動將上游提交拉入其本地倉庫,或手動將其本地提交推回到中央倉庫。git remote命令實際上只是將URL傳遞給這些「共享」命令的一種更簡單的方法。

origin Remote

當使用 git clone 克隆倉庫時,它會自動創建一個名為 origin 的遠程連接,指向克隆的遠程倉庫。 這對於創建中央倉庫的本地副本的開發人員很有用,因為它提供了一種簡單的方法來拉取上游更改或發布本地提交。 這種行為也是大多數基於 Git 的項目稱與中央倉庫的鏈接為 origin 的原因。

倉庫 URL

Git支援多種引用遠程倉庫的方法。訪問遠程倉庫的兩種最簡單的方法是通過HTTPSSH協議。HTTP 是一種允許匿名、只讀訪問倉庫的簡單方法。例如:

//host/path/to/repo.git

但是,通常不可能將提交推送到HTTP地址(無論如何,我們都不希望允許匿名推送)。對於讀寫訪問,應改用SSH:

ssh://user@host/path/to/repo.git

在主機上需要一個有效的SSH帳戶,但除此之外,Git還支援通過SSH進行開箱即用的身份驗證訪問。


git remote 命令常用子命令

git remote 命令是許多需要附加「子命令」的 Git 命令之一。 下面是對常用 git remote子命令的介紹。

ADD <NAME> <URL>

 

在 ./.git/config 中添加一條記錄,該記錄是為名稱為 name <NAME> 的遠程鏈接添加遠程url<URL>

如果後面跟上-f選項,則在創建遠程記錄後立即進行 git fetch 操作。

如果後面跟上--tags選項,則在創建遠程記錄後立即進行git fetch操作,並且從遠程倉庫中導入標籤。

RENAME <OLD> <NEW>

 

更新 ./.git/config 以將記錄 <OLD> 重命名為 <NEW>。 更新所有遠程跟蹤分支和遠程的配置設置。

REMOVE <NAME>
# 或者
RM <NAME>

 

修改 ./.git/config 並刪除名為<NAME>的遠程文件。將刪除所有遠程跟蹤分支和遠程跟蹤的配置設置。

GET-URL <NAME>

 

輸出遠程記錄的 URL。

SHOW <NAME>

 

輸出有關遠程<NAME>的高級資訊。

PRUNE <NAME>

 

刪除<NAME>遠程存儲庫中不存在的任何本地分支。

添加遠程倉庫

git remote add 命令將創建一個到遠程存儲庫的新連接記錄。 添加遠程記錄後,我們將能夠在其他 Git 命令中用新添加的遠程倉庫鏈接的名稱對遠程倉庫進行pushpull等操作。

$ git remote add fake_test https://github.com/onmpw/JYPHP.git;

 

更詳細的添加遠程倉庫的介紹可以參考 git remote 操作——一個項目多個遠程倉庫 這篇文章