目录
- 基础概念
- [git status](#git status)
- [git add](#git add)
- [git diff](#git diff)
- [git log](#git log)
- [git commit](#git commit)
- 文件可以处于以下三种状态之一
- 远程存储库与本地存储库
- 参考
用于知识记录。后续有新的的内容,例子,将持续更新本文档。
基础概念
工作树:git add
之前,变动内容的文件列表(包括新增,修改,删除的内容)
暂存区/索引:变动内容,git add
之后,git commit
之前。
git status
显示工作树状态
$ git status
添加-s
选项将只显示已更改的文件名。
添加-s
选项,后面再接-b
选项,将在输出中包含分支名称。
git add
$ git add <filepattern>
git add file
git add *.txt
# 将所有的修改内容,包括删除的全都加到索引
git add .
把文件或目录加到暂存区
-p
选项,系统将提示您接受/拒绝已更改文件的特定部分。
-i
选项,则可以交互式地暂存更改。
git diff
$ 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 # 默认显示当前分支的提交列表
git log filename # 指定显示某个文件的log记录
git log -n 2 #指定显示两条记录
在默认情况下,日志将会显示当前分支的提交列表。
指定文件名将仅显示该给定文件的提交日志
git commit
$ 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 存储库有两种类型:远程和本地。
- 远程存储库托管在远程服务器上 (这可以在互联网上或异地服务器上;它甚至可以是不同路径中的同一台机器) 并在多个团队成员之间共享。
- 本地存储库为单个用户托管在本地机器上。