Git 状态:为已删除的文件着色

Git 状态:为已删除的文件着色

我在 Cygwin 上运行 git 2.17.0。

做一个git config --get-regexp color向我展示

....
color.status.added bold yellow
color.status.changed red
color.status.untracked white
color.status.branch bold blue
color.status.deleted yellow
color.status.header bold white
....
color.branch.local yellow
....

但是当我执行 a 时git status,“已修改”和“已删除”文件以相同的颜色(红色)显示。另请注意,在我的终端配置中,“黄色”定义为与“红色”明显不同的颜色,正如我在执行 a 时所看到的那样git branch,它以正确的颜色显示了本地分支。

我最好的猜测是 git 将存储库中的一个文件视为我已删除的文件,由于某种原因作为“修改”文件,但后来我想知道 color.status.deleted 设置应该意味着什么。

有人对此有解释吗?其他人可以重现这个吗?

答案1

有两种不同类型的已删除git 状态中的文件。

假设我的 git 存储库中有一个定期提交的文件,名为“deleteme”。我可以做两件事:

  1. 我可以rm deleteme。此时,从 git 的角度来看,该文件被简单地修改了,所以它显示在红色的

    ~/Wip/sample $ rm deleteme
    ~/Wip/sample $ git status
    Sul branch master
    Changes not staged for commit:
      (use "git add/rm <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
    deleted:    deleteme
    
  2. 我可以做git rm deleteme(或rm deleteme; git add deleteme)。此时文件已被删除,并且其删除内容已在索引中,准备提交。从 git pov 来看,这个文件是一个“已删除”文件,因此它显示在黄色的

    ~/Wip/sample $ git rm deleteme
    ~/Wip/sample $ git status
    Sul branch master
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
        deleted:    deleteme
    

PS 显然,在我的解释中,颜色与您的配置相同。

相关内容