Git remote 远程仓库链接管理

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是一种允许匿名、只读访问仓库的简单方法。例如:

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 命令中用新添加的远程仓库链接的名称对远程仓库进行push或pull等操作。

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

更详细的添加远程仓库的介绍可以参考 git remote 操作——一个项目多个远程仓库 这篇文章

查看笔记