-
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.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
指针,并可选地更改索引
或暂存区,如果使用--hard
,还可以可选地更改工作目录。此最终选项使该命令在使用不当的情况下可能会丢失你的工作,因此在使用它之前请确保你理解它。
我们首先在取消暂存已暂存的文件中介绍了git reset
最简单的用法,在那里我们使用它来取消我们已运行git add
的文件的暂存。
然后我们在重置详解中详细介绍了它,该章节完全致力于解释此命令。
我们在中止合并中使用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命令时可能遇到的许多选项和场景。