Git教程学习:06 远程仓库的使用

0 前言

为了能在任意 Git 项目上协作,我们需要知道如何管理自己的远程仓库。 远程仓库是指托管在因特网或其他网络中我们项目的版本库。 我们可以有好几个远程仓库,通常有些仓库对我们只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等。

Note远程仓库可以在我们的本地主机上 我们完全可以在一个“远程”仓库上工作,而实际上它在我们本地的主机上。 词语“远程”未必表示仓库在网络或互联网上的其它位置,而只是表示它在别处。 在这样的远程仓库上工作,仍然需要和其它远程仓库上一样的标准推送、拉取和抓取操作。

1 查看远程仓库

如果想查看我们已经配置的远程仓库服务器,可以运行 git remote 命令。 它会列出我们指定的每一个远程服务器的简写。 如果我们已经克隆了自己的仓库,那么至少应该能看到 origin ——这是 Git 给你克隆的仓库服务器的默认名字:

$ git clone https://github.com/schacon/ticgit
$ cd ticgit
$ git remote

image-20240118175221096

我们也可以指定选项 -v,会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL。

$ git remote -v

image-20240118175358669

如果我们的远程仓库不止一个,该命令会将它们全部列出。

2 添加远程仓库

运行 git remote add <shortname> <url> 添加一个新的远程 Git 仓库,同时指定一个方便使用的简写:

$ git remote
$ git remote add pd https://github.com/paulboone/ticgit
$ git remote -v

image-20240118175909787

现在我们可以在命令行中使用字符串 pb 来代替整个 URL。 例如,如果我们想拉取 Paul 的仓库中有但我们没有的信息,可以运行 git fetch pb

$ git fetch pd

image-20240118180042744

3 从远程仓库中抓取与拉取

从远程仓库中获得数据,可以执行:

$ git fetch <remote>

如果我们使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。 所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。 必须注意 git fetch 命令只会将数据下载到我们的本地仓库——它并不会自动合并或修改我们当前的工作。 当准备好时我们必须手动将其合并入我们的工作。

如果我们的当前分支设置了跟踪远程分支, 那么可以用 git pull 命令来自动抓取后合并该远程分支到当前分支。 这或许是个更加简单舒服的工作流程。默认情况下,git clone 命令会自动设置本地 master 分支跟踪克隆的远程仓库的 master 分支(或其它名字的默认分支)。 运行 git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。

4 推送到远程仓库

当我们想分享我们的项目时,必须将其推送到上游。 这个命令很简单:git push <remote> <branch>。 当我们想要将 master 分支推送到 origin 服务器时(再次说明,克隆时通常会自动帮我们设置好那两个名字), 那么运行这个命令就可以将我们所做的备份到服务器:

$ git push origin master

只有当我们有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。 当我们和其他人在同一时间克隆,他们先推送到上游然后我们再推送到上游,我们的推送就会毫无疑问地被拒绝。 我们必须先抓取他们的工作并将其合并进我们的工作后才能推送。

5 查看某个远程仓库

如果想要查看某一个远程仓库的更多信息,可以使用 git remote show <remote> 命令。 如果想以一个特定的缩写名运行这个命令,例如 origin,会得到像下面类似的信息:

$ git remote show origin

image-20240118181325610

6 远程仓库的重命名与移除

我们可以运行 git remote rename 来修改一个远程仓库的简写名。 例如,想要将 pb 重命名为 paul,可以用 git remote rename 这样做:

$ git remote rename pd paul
$ git remote

image-20240118181511408

注意: 这同样也会修改我们所有远程跟踪的分支名字。 那些过去引用 pb/master 的现在会引用 paul/master

如果因为一些原因想要移除一个远程仓库——我们已经从服务器上搬走了或不再想使用某一个特定的镜像了, 又或者某一个贡献者不再贡献了——可以使用 git remote removegit remote rm

$ git remote remove paul
$ git remote

image-20240118181714081

注意: 一旦使用这种方式删除了一个远程仓库,那么所有和这个远程仓库相关的远程跟踪分支以及配置信息也会一起被删除。

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值