-
A1. 附录 A:在其他环境中使用 Git
- A1.1 图形界面
- A1.2 在 Visual Studio 中使用 Git
- A1.3 在 Visual Studio Code 中使用 Git
- A1.4 在 IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine 中使用 Git
- A1.5 在 Sublime Text 中使用 Git
- A1.6 在 Bash 中使用 Git
- A1.7 在 Zsh 中使用 Git
- A1.8 在 PowerShell 中使用 Git
- A1.9 总结
-
A2. 附录 B:在你的应用中嵌入 Git
-
A3. 附录 C:Git 命令
A3.4 附录 C:Git 命令 - 分支与合并
分支与合并
Git 中实现大部分分支与合并功能的命令只有几个。
git branch
git branch
命令实际上是一个分支管理工具。它可以列出你拥有的分支、创建新分支、删除分支和重命名分支。
在 跟踪分支 中,我们使用 git branch -u
选项来设置跟踪分支。
最后,我们在 Git 引用 中介绍它在后台所做的一些事情。
git checkout
git checkout
命令用于切换分支并将内容检出到你的工作目录。
我们首先在 切换分支 中遇到该命令,以及 git branch
命令。
我们在 跟踪分支 中看到如何使用它来启动跟踪分支,使用 --track
标志。
我们在 检查冲突 中使用它通过 --conflict=diff3
重新引入文件冲突。
我们在 Reset 解密 中详细介绍了它与 git reset
的关系。
最后,我们在 HEAD 中介绍了一些实现细节。
git merge
git merge
工具用于将一个或多个分支合并到你检出的分支中。然后它会将当前分支推进到合并结果。
git merge
命令首先在 基本分支 中介绍。虽然它在本书的各个地方都有使用,但 merge
命令的变体非常少 — 通常只是 git merge <branch>
以及你想要合并的单个分支的名称。
我们在 Forked Public Project 的最后介绍了如何进行压缩合并(Git 合并工作,但假装它只是一个新的提交,而不记录你正在合并的分支的历史记录)。
我们介绍了关于合并过程和命令的很多内容,包括 -Xignore-space-change
命令和 --abort
标志,用于在 高级合并 中中止问题合并。
我们在 签署提交 中学习了如果你的项目使用 GPG 签名,如何在合并之前验证签名。
最后,我们在 子树合并 中学习了关于子树合并的内容。
git mergetool
git mergetool
命令主要用于在 Git 合并出现问题时,启动一个外部合并辅助工具。
git log
git log
命令用于从最近的提交快照向后显示项目的可达历史记录。 默认情况下,它只会显示您当前所在分支的历史记录,但可以指定不同的甚至多个 head 或分支来遍历。 它也经常用于显示两个或多个分支在提交级别的差异。
本书几乎每一章都使用此命令来演示项目的历史记录。
我们在 查看提交历史 中介绍并深入讲解了该命令。 在那里,我们查看了 -p
和 --stat
选项,以了解每次提交中引入的内容,以及 --pretty
和 --oneline
选项,以便更简洁地查看历史记录,以及一些简单的日期和作者过滤选项。
在 创建新分支 中,我们使用带有 --decorate
选项的命令来轻松地可视化我们的分支指针所在的位置,并且我们还使用 --graph
选项来查看不同的历史记录是什么样的。
在 私人小团队 和 提交范围 中,我们介绍了 branchA..branchB
语法,以使用 git log
命令来查看相对于另一个分支,某个分支独有的提交。 在 提交范围 中,我们对此进行了相当广泛的介绍。
在 合并日志 和 三点 中,我们介绍了使用 branchA…branchB
格式和 --left-right
语法来查看一个分支或另一个分支中的内容,但不是两者都有的内容。 在 合并日志 中,我们还介绍了如何使用 --merge
选项来帮助调试合并冲突,以及使用 --cc
选项来查看历史记录中的合并提交冲突。
在 RefLog 简写 中,我们使用 -g
选项通过此工具查看 Git reflog,而不是进行分支遍历。
在 搜索 中,我们介绍了使用 -S
和 -L
选项对代码中历史上发生的事情进行相当复杂的搜索,例如查看函数的历史记录。
在 签署提交 中,我们看到了如何使用 --show-signature
来根据每个提交是否已有效签名,将验证字符串添加到 git log
输出中的每个提交。