工作树:git add 之前,变动内容的文件列表(包括新增,修改,删除的内容)
暂存区/索引:变动内容,git add之后,git commit之前。
显示工作树状态
$ git status
添加-s选项将只显示已更改的文件名。
添加-s选项,后面再接-b选项,将在输出中包含分支名称。

$ git add
git add file
git add *.txt
# 将所有的修改内容,包括删除的全都加到索引
git add .
把文件或目录加到暂存区
-p选项,系统将提示您接受/拒绝已更改文件的特定部分。
-i选项,则可以交互式地暂存更改。
$ git diff
在默认情况下,diff 命令将会显示工作树和索引之间的差异。(就是git add 之前的内容和最后一次提交(HEAD 指向的提交)之间的差异)
--cached选项,将显示索引和 HEAD 之间的差异。(很有用;git add之后的内容即暂存区内容和最后一次提交( HEAD 指向的提交)之间的差异)
如果您指定提交哈希 commit-id,将会显示工作树和当前的 HEAD/提交之间的差异
在 Git 中,git diff --cached 选项用于比较暂存区(也称为索引区,即 git add 后的状态)和最后一次提交(HEAD指向的提交)之间的差异。这个命令可以让你查看即将提交的更改,而不是工作目录中的更改。
具体来说,git diff --cached 的作用包括以下几点:
git diff --cached 会显示已经暂存但尚未提交的更改与最后一次提交之间的差异,这样你可以查看即将提交的内容。git diff --cached 常用于在实际提交之前进行最后的检查,确保即将提交的更改是正确的,并且没有遗漏或错误。总的来说,git diff --cached 是一个有用的命令,可以帮助你审查暂存区的更改,了解即将提交的内容,以便在提交前进行必要的调整和确认。
显示提交日志
git log # 默认显示当前分支的提交列表
git log filename # 指定显示某个文件的log记录
git log -n 2 #指定显示两条记录
在默认情况下,日志将会显示当前分支的提交列表。
指定文件名将仅显示该给定文件的提交日志
$ git commit
将更改提交到本地存储库
-a 选项就像一个快捷方式,可以检测更改的文件 (新添加的文件除外),将它们添加到索引, 并提交它们。
-m选项允许您同时提交和指定提交消息。如果您不指定-m,将打开一个文本编辑器,提示您输入提交消息。
--amend 将新的更改加到最新commit里,(已经git commit但还没合入到远端仓库
例如:
git commit -m "feat(xxx): add a.txt"
在Git 中,git commit -a 选项用于将所有已经跟踪(tracked )的文件的更改一起提交到版本库,而不需要先使用 git add 命令将这些更改暂存(stage )起来。这个选项的作用相当于同时执行 git add -u 和 git commit。
具体来说,git commit -a 的作用包括以下几点:
git commit -a 会自动将所有已经被 Git 跟踪的文件的更改暂存起来,这样这些更改就可以被包含在接下来的提交中。git commit -a 将会打开文本编辑器以编写提交信息,并将这些更改作为一个新的提交保存到版本库中。-a 选项可以简化提交流程,特别是对于那些只需提交已跟踪文件更改的情况,而不需要添加新文件或者需要忽略一些文件。git commit -a 只会提交已经被 Git 跟踪的文件的更改,对于新添加的文件(untracked files)则不会包含在提交中。如果想要将新添加的文件也包含在提交中,需要先使用 git add 命令将这些文件暂存起来,然后再执行 git commit。Git 存储库有两种类型:远程和本地。