章节 ▾ 第二版

A3.5 附录 C:Git 命令 - 共享和更新项目

共享和更新项目

Git 中访问网络的命令不多,几乎所有命令都在本地数据库上操作。 当您准备好共享您的工作或从其他地方拉取更改时,有几个命令可以处理远程仓库。

git fetch

git fetch 命令与远程仓库通信,并提取该仓库中所有不在您当前仓库中的信息,并将其存储在您的本地数据库中。

我们首先在从远程仓库获取和拉取中查看此命令,并在远程分支中继续看到其用例示例。

我们还在为一个项目做贡献中的几个示例中使用它。

我们使用它来获取默认空间之外的单个特定引用,位于拉取请求引用,并且我们看到如何从打包中的包中获取。

我们设置了高度自定义的引用规范,以便在Refspec中,使 git fetch 执行一些与默认值略有不同的操作。

git pull

git pull 命令基本上是 git fetchgit merge 命令的组合,Git 将从您指定的远程仓库中获取,然后立即尝试将其合并到您所在的分支中。

我们在从远程仓库获取和拉取中快速介绍了它,并在检查远程仓库中展示了,如果您运行它,它将合并什么。

我们还看到如何使用它来帮助解决当您变基时变基中的变基困难。

我们展示了如何使用带有 URL 的它以一次性方式拉取更改,位于检出远程分支

最后,我们很快提到您可以使用 --verify-signatures 选项来验证您正在拉取的提交是否已在签署提交中进行了 GPG 签名。

git push

git push 命令用于与其他仓库通信,计算您的本地数据库中远程仓库没有的内容,然后将差异推送到另一个仓库中。 它需要对另一个仓库的写入访问权限,因此通常以某种方式进行身份验证。

我们首先在推送到您的远程仓库中查看 git push 命令。 在这里,我们介绍了将分支推送到远程仓库的基础知识。 在推送中,我们将更深入地了解推送特定分支,在跟踪分支中,我们了解如何设置跟踪分支以自动推送。 在删除远程分支中,我们使用 --delete 标志来删除服务器上具有 git push 的分支。

在整个为一个项目做贡献中,我们看到了几个使用 git push 通过多个远程仓库共享分支上的工作的示例。

我们了解如何使用它来共享您使用 --tags 选项在共享标签中制作的标签。

发布子模块变更中,我们使用--recurse-submodules选项来检查所有子模块的工作是否已发布,然后再推送父项目,这在使用子模块时非常有用。

其他客户端钩子中,我们简要讨论了pre-push钩子,这是一个可以设置在推送完成之前运行的脚本,用于验证是否应该允许推送。

最后,在推送 Refspecs中,我们研究了使用完整的 refspec 而不是通常使用的通用快捷方式进行推送。 这可以帮助你非常具体地说明你希望共享的工作。

git remote

git remote命令是一个管理远程仓库记录的工具。它允许您将长URL保存为短句柄,例如“origin”,这样您就不必一直输入它们。您可以有多个这样的句柄,而git remote命令用于添加、更改和删除它们。

此命令在使用远程仓库中有详细介绍,包括列出、添加、删除和重命名它们。

它几乎在本书的每个后续章节中都有使用,但始终采用标准的git remote add <name> <url>格式。

git archive

git archive命令用于创建项目特定快照的归档文件。

我们在准备发布中使用git archive来创建一个项目的 tarball 以供共享。

git submodule

git submodule命令用于管理普通仓库中的外部仓库。这可以是用于库或其他类型的共享资源。submodule命令有几个子命令(addupdatesync等)用于管理这些资源。

此命令仅在子模块中提及和完全覆盖。

scroll-to-top