git文件的四种状态

发布时间 2023-12-10 21:55:07作者: Ewar-k

git status 查看文件状态命令

命令:git status [<选项>...]

[]表示可选,...表示可以有很多项,可选参数有:

  1. -s 精简输出
  2. -b 显示分支信息
  3. -v 显示变更的文本内容

文件的四种状态

  • Untracked: 未跟踪的文件, 该文件在文件夹中, 但是没有加入到本地仓库, 不参与版本控制。
    可以通过git add <file>... 状态变为Staged

  • Unmodify: 文件已经加入到本地仓库,没有被修改过
    如果它被修改, 会变为Modified
    image

    如果使用git rm --cached <file>移出版本库, 则成为Untracked文件
    image

  • Modified: 文件已修改,并没有进行其他的操作【此时显示为红色的Modified】。
    image
    使用git restore <file>放弃工作区的修改,将使用本地仓库中的文件覆盖工作区的,文件将变为Unmodify状态。
    image

    使用git add <file>将文件添加到暂存区,此时文件为Staged状态【显示为绿色的Modified
    image

    git restore --staged <file>将文件移出暂存区,此时文件变为Modified状态
    image

  • Staged: 暂存状态【此时显示为绿色的Modified
    image

    执行git commit <file>则将修改同步到本地库中, 文件为Unmodify状态
    执行git restore --staged <file>取消暂存, 文件状态为Modified

git status

image

git status -s

加上-s选项,可以精简输出文件状态
image

' ' (空格)表示文件未发生更改
M 表示文件发生改动。
A 表示新增文件。
D 表示删除文件。
R 表示重命名。
C 表示复制。
U 表示更新但未合并。
? 表示未跟踪文件。
! 表示忽略文件。

未跟踪和忽略文件会显示相同的两列,如 ??。

git status -b

显示分支与跟踪信息
image

-s选项配合使用
image

git status -v

只有一个 -v 选项时,显示版本库暂存区之间比较发生变更的内容。
而有两个 -v 选项时,显示暂存区工作区之间比较发生变更的内容。