-
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
的文件。
然后在reset解密中相当详细地介绍了它,该章节完全致力于解释这个命令。
我们在放弃合并中使用 git reset --hard
来中止合并,在那里我们也使用了 git merge --abort
,它是 git reset
命令的一个包装器。
git rm
git rm
命令用于从 Git 的暂存区和工作目录中删除文件。 它类似于 git add
,因为它会暂存文件的删除以供下次提交。
我们在移除文件中详细介绍了 git rm
命令,包括递归删除文件以及仅从暂存区删除文件但使用 --cached
将其保留在工作目录中。
本书中 git rm
唯一不同的用途是在移除对象中,我们在运行 git filter-branch
时简要使用并解释了 --ignore-unmatch
,这只是为了在我们尝试删除的文件不存在时不会出错。 这对于脚本编写非常有用。
git clean
git clean
命令用于从你的工作目录中删除不需要的文件。 这可能包括删除临时构建工件或合并冲突文件。
我们在清理你的工作目录中介绍了你可能使用 clean 命令的许多选项和场景。