Git
章节 ▾ 第二版

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

共享和更新项目

Git 中没有太多命令可以访问网络,几乎所有命令都在本地数据库上运行。当你准备分享你的工作或从其他地方拉取更改时,有一些命令可以处理远程仓库。

git fetch

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

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

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

我们使用它来提取 Pull Request 引用 中默认空间之外的单个特定引用,并且我们看到如何在 捆绑 中从捆绑中提取。

我们在 引用规范 中设置了高度自定义的引用规范,以便让 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 挂钩,这是一个脚本,我们可以在推送完成之前设置它以验证是否应该允许推送。

最后,在推送引用规范中,我们使用完整的引用规范而不是通常使用的常规快捷方式来进行推送。这可以帮助你非常具体地了解你希望共享哪些工作。

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