-
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.3 附录 C:Git 命令 - 基本快照
基本快照
对于暂存内容并将其提交到历史记录的基本工作流程,只有少数几个基本命令。
git add
git add
命令将工作目录中的内容添加到暂存区(或“索引”)中,以备下次提交。当运行 git commit
命令时,默认情况下它只查看这个暂存区,因此 git add
用于精确地构建你希望下一次提交快照看起来的样子。
这个命令在 Git 中极其重要,本书中提及或使用了数十次。我们将快速介绍一些可以找到的独特用法。
我们首先在跟踪新文件中详细介绍和解释了 git add
。
我们提到如何在基本合并冲突中用它来解决合并冲突。
我们介绍了如何使用它来交互式地暂存修改文件中特定部分,详见交互式暂存。
最后,我们在树对象中模拟了它的底层操作,这样你就能了解它在幕后做了什么。
git status
git status
命令将显示工作目录和暂存区中文件的不同状态。哪些文件已修改但未暂存,哪些文件已暂存但尚未提交。在其常规形式下,它还会显示一些关于如何在这些阶段之间移动文件的基本提示。
我们首先在检查文件的状态中介绍了 status
命令,包括其基本形式和简化形式。虽然我们在本书中多处使用它,但 git status
命令的所有功能几乎都在那里得到了介绍。
git diff
git diff
命令用于查看任意两个树之间的差异。这可以是工作环境和暂存区之间的差异(单独使用 git diff
),暂存区和上次提交之间的差异(git diff --staged
),或者两个提交之间的差异(git diff master branchB
)。
我们首先在查看已暂存和未暂存的更改中介绍了 git diff
的基本用法,在那里我们展示了如何查看哪些更改已暂存,哪些尚未暂存。
我们在提交准则中检查提交前可能存在的空白符问题,使用 --check
选项。
我们了解了如何通过 git diff A…B
语法在确定引入了什么中更有效地检查分支之间的差异。
我们使用它通过 -b
过滤掉空白符差异,以及如何在高级合并中通过 --theirs
、--ours
和 --base
比较冲突文件的不同阶段。
最后,我们在从子模块开始中通过 --submodule
有效地比较子模块更改。
git difftool
git difftool
命令只是启动一个外部工具来显示两个树之间的差异,以防你想使用内置 git diff
命令之外的其他工具。
我们只在查看已暂存和未暂存的更改中简要提及了这一点。
git commit
git commit
命令获取所有已通过 git add
暂存的文件内容,并在数据库中记录一个新的永久快照,然后将当前分支上的分支指针移动到该快照。
我们首先在提交你的更改中介绍了提交的基本知识。在那里我们还演示了如何在日常工作流程中使用 -a
标志跳过 git add
步骤,以及如何使用 -m
标志在命令行上传递提交消息而不是启动编辑器。
在撤销操作中,我们介绍了使用 --amend
选项来重做最近一次提交。
在分支概览中,我们更详细地探讨了 git commit
的作用以及它为何以这种方式工作。
我们在签署提交中了解了如何使用 -S
标志以加密方式签署提交。
最后,我们深入研究了 git commit
命令在后台做了什么以及它在提交对象中是如何实际实现的。
git reset
git reset
命令主要用于撤销操作,正如其动词所示。它会移动 HEAD
指针,并可选择地更改 index
或暂存区,如果你使用 --hard
,它还可以选择性地更改工作目录。最后一个选项可能导致此命令在错误使用时丢失你的工作,因此在使用前务必确保你理解它。
我们首先在取消暂存已暂存文件中有效地介绍了 git reset
的最简单用法,在那里我们使用它来取消暂存我们已经运行过 git add
的文件。
然后我们在重置的奥秘中详细介绍了它,该章节完全致力于解释此命令。
我们使用 git reset --hard
在中止合并中中止合并,在那里我们也使用了 git merge --abort
,它是 git reset
命令的一个简单包装。