Git
git remote

git remote 命令:添加、列表、删除、更改名称url、协议

在这篇文章中,我们将介绍如何使用git remote命令来添加、查看和删除远程仓库,以及改变它们的名称和URL。虽然git本身很好,但当你和一群人一起使用它时,它才真正发挥了自己的作用。让我们来看看git远程命令,让你开始吧。

1. git remote add: 添加/注册/连接一个新的远程仓库

当你第一次使用git init命令创建本地仓库时,你不会有任何远程仓库连接。如果你运行下面的命令,显示所有连接的远程仓库的列表,将没有输出。

$ git remote
 

要在本地环境中与其他团队成员分享你的源代码,你需要连接到一个远程 repo。一个远程版本库可以是你自己配置的服务器,也可以使用Github或Bitbucket这样的服务。

无论哪种方式,也无论你使用何种通信协议,远程版本库都有一个以.git结尾的地址。在下面的命令中使用这个地址来添加一个新的远程 repo。 如果是作为主 repo 的远程 repo,添加名为 origin的远程 repo 是一个老惯例。

所以输入以下命令

$ git remote add origin [url]

下面是实际的执行结果

git remote add execution result

git remote add命令完成时没有任何输出。如果你在输入后用git remote命令进行验证,你会在列表中看到origin这个名字。

add命令一起使用的一个常用选项是f。这个选项将在添加远程 repo 后自动从新添加的 repo 的所有分支获取数据。

如果你收到错误信息remote origin already exists,这意味着已经有一个与origin名称相关的远程 repo,所以请检查它并删除重命名钩。你可以在下面的章节中看到如何做到这一点。

2. git remote -v: 检查远程 repo 名称和 URL

git remote命令有一个-v(-verbose)选项。这个选项允许你在连接的远程仓库列表中打印更多的粗略信息。

$ git remote -v

这是添加了另一个远程 repo 后的命令的样子。

git remote -v execution result

与列表中的名字一起,URL也被打印出来。你还可以看到,同一个名字在fetchpush中被打印了两次,这意味着在某些情况下,两次使用的URL可能是不同的。 使用不同地址的主要原因是:让某个 repo 只读,屏蔽推送地址,或者使用不同的通信协议。

我们将在下面的第5节中看到如何分别设置每个地址。

3. git remote remove: 删除一个远程 repo

下面是如何删除与你设置的远程 repo 的连接。只需运行以下命令。

$ git remote remove [name]

$ git remote rm [name]

删除一个远程 repo 也将删除与之相关的所有分支和设置。执行画面会是这样的

git remote remove execution result

4. git remote rename: 重命名远程 repo

接下来,你可以改变你给远程 repo 的名字。你可以通过运行以下命令来改变它。

$ git remote rename [old_name] [new_name]

当你重命名一个远程 repo 时,所有与之相关的分支和设置也会被更新。让我们看看执行画面

git远程重命名执行结果

origin的名字已经改为onion了。

5. git remote set-url: 改变远程 repo 的 URL [#5]。

这里有一条命令,用于改变特定名称的URL设置。使用下面的命令。

$ git remote set-url [name] [new_url]

这个命令默认改变fetchpush地址;但是,如果你给它--push选项,你只能改变推送URL。

$ git remote set-url --push [name] [new_push_url]

一旦你改变了PUSH URL,没有--PUSH选项的命令将只改变FETCH URL地址。检查执行结果,看看URL地址是如何改变的。

git remote set-url执行结果

6. 介绍一下远程仓库使用的4种协议

Git支持许多与远程仓库进行通信的协议。让我们来看看其中的四个。

6.1. 本地

如果一个git repo在同一个系统上,你可以通过文件系统访问它。这主要适用于测试或本地备份。

一个例子的地址可能是这样的

$ git remote add local_repo file:///path/to/local/repo.git

6.2. HTTP/HTTPS

HTTP(S)是Git托管服务的一个流行的通信协议,因为它是最常见的,而且不需要配置。 它与防火墙和代理等设置配合得很好,特别是在HTTPS的情况下,通过对加密的支持,有数据安全的额外好处。

一个例子的地址可能看起来像这样

$ git remote add remote_repo https://example.com/user/repo.git

6.3. SSH

SSH 是另一个流行的通信协议,因为它支持公钥/私钥加密,而且比 HTTP(S) 更快。 首次在 Git 中设置它比 HTTP(S) 更加复杂,但它可以为大型仓库提供性能优势。出于这个原因,大多数 Git 托管服务都支持它。

一个例子的地址可能是这样的

$ git remote add remote_repo ssh://user@example.com:/path/to/repo.git

6.4 Git

Git 通过 TCP 支持自己的 Git 协议。这个协议不需要用户认证或加密,所以在大多数开源项目中,包括Git,它通常被用于只读的实现。

一个例子的地址可能是这样的

$ git remote add remote_repo git://user@example.com:/path/to/repo.git

7. 总结

在这篇文章中,我们几乎涵盖了关于git remote命令的所有知识,它是使用Git工作的起点。git remote命令最终负责管理与本地Git环境相关的所有远程仓库、 它与大多数与远程仓库有关的命令一起使用,如git clonegit branchgit pushgit pull

管理远程仓库是需要小心翼翼的,尤其是当你的项目成长,需要更加关注细节的时候。 我们希望这篇文章给你一个管理远程仓库的好起点。

copyright for git remote

© 2023 All rights reserved.