-
A1. 附录 A:Git 在其他环境中的使用
- A1.1 图形界面
- A1.2 Git 在 Visual Studio 中的使用
- A1.3 Git 在 Visual Studio Code 中的使用
- A1.4 Git 在 IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine 中的使用
- A1.5 Git 在 Sublime Text 中的使用
- A1.6 Git 在 Bash 中的使用
- A1.7 Git 在 Zsh 中的使用
- A1.8 Git 在 PowerShell 中的使用
- A1.9 总结
-
A2. 附录 B:在应用程序中嵌入 Git
-
A3. 附录 C:Git 命令
A3.5 附录 C:Git 命令 - 共享和更新项目
共享和更新项目
Git 中访问网络的命令并不多,几乎所有命令都在本地数据库上操作。当您准备好共享您的工作或从其他地方获取更改时,只有少数命令会处理远程仓库。
git fetch
git fetch
命令会与远程仓库通信,获取远程仓库中您当前仓库没有的信息,并将这些信息存储到您的本地数据库中。
我们首先在 从远程仓库获取和拉取 中介绍了此命令,并在 远程分支 中继续展示了它的使用示例。
我们还在 为项目贡献代码 中的几个示例中使用了它。
我们在 引用规范 中设置了高度自定义的引用规范,以使 git fetch
的行为与默认行为略有不同。
git pull
git pull
命令本质上是 git fetch
和 git merge
命令的组合,Git 会从您指定的远程仓库获取信息,然后立即尝试将其合并到您当前所在的本地分支。
我们在 从远程仓库获取和拉取 中简要介绍了它,并展示了如何在 检查远程仓库 中查看它将要合并的内容。
我们还展示了如何在 变基时的变基 中使用它来帮助解决变基问题。
我们在 检出远程分支 中展示了如何使用 URL 来拉取更改。
最后,我们在 签署提交 中非常简要地提到了您可以使用 --verify-signatures
选项来验证您拉取的提交是否已使用 GPG 签名。
git push
git push
命令用于与另一个仓库通信,计算您的本地数据库中远程仓库没有的信息,并将差异推送到另一个仓库。它需要对另一个仓库的写入权限,因此通常需要某种形式的身份验证。
我们首先在 推送到远程仓库 中介绍了 git push
命令。在这里,我们介绍了将分支推送到远程仓库的基本操作。在 推送 中,我们更深入地讨论了推送特定分支,并在 跟踪分支 中介绍了如何设置跟踪分支以自动推送。在 删除远程分支 中,我们使用 --delete
标志来使用 git push
删除服务器上的分支。
在整个 为项目贡献代码 中,我们看到了许多使用 git push
通过多个远程仓库共享分支工作的示例。
我们看看如何使用 --tags
选项与您在 共享标签 中创建的标签进行共享。
在 发布子模块更改 中,我们使用 --recurse-submodules
选项来检查在推送超级项目之前所有子模块的工作是否已发布,这在使用子模块时非常有用。
在 其他客户端钩子 中,我们简要介绍了 pre-push
钩子,这是一个可以在推送完成之前设置的脚本,用于验证是否允许进行推送。
最后,在 推送 Refspecs 中,我们查看了使用完整的 Refspecs 推送,而不是通常使用的通用快捷方式。这可以帮助您非常明确地指定要共享的工作。
git remote
git remote
命令是用于管理远程仓库记录的工具。它允许您将长 URL 保存为简短的句柄,例如“origin”,这样您就不必一直输入它们。您可以拥有多个这样的句柄,git remote
命令用于添加、更改和删除它们。
此命令在 使用远程仓库 中进行了详细介绍,包括列出、添加、删除和重命名它们。
它也用于本书中几乎所有后续章节,但始终使用标准的 git remote add <name> <url>
格式。
git submodule
git submodule
命令用于管理普通仓库中的外部仓库。这可能是用于库或其他类型的共享资源。submodule
命令有几个子命令(add
、update
、sync
等)用于管理这些资源。
此命令仅在 子模块 中提到并完全介绍。