脏/清洁工作目录是什么意思?

Tim*_*Tim 4 git

来自Leoliger 2ed的Git版本控制,

在将新文件添加到存储库后,git status表示没有要提交的未完成的暂存更改.

 $ git status
 # On branch master
 nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)

Git还花时间告诉您工作目录是干净的,这意味着工作目录没有未知修改过的文件与存储库中的文件不同.

"已修改"文件是否与已修改但未提交的已跟踪文件相同?"跟踪文件"是指之前提交的文件吗?

"未知"文件是什么意思?

忽略的文件不计算在内吗?

未跟踪但未被忽略的文件是否算作"未知"?

顺便说一句,在Chacon的Pro Git中:

$ git status
On branch master
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)

这意味着您有一个干净的工作目录 - 换句话说,没有 跟踪和修改过的文件.

Zaj*_*ajn 5

"已修改"文件是否与已修改但未提交的已跟踪文件相同?

是.当您对git正在跟踪的文件进行更改时,git会发现文件的当前状态与该文件的上次提交状态之间存在差异.在提交此文件之前,将此文件git status显示为已修改且您的工作目录将变脏.

"跟踪文件"是指之前提交的文件吗?

是.跟踪文件是git知道的文件.也就是说,您之前使用git add <file_name>和创建快照的文件git commit.

"未知"文件是什么意思?

据我所知,git术语中没有"未知"文件的概念.我假设作者的意思是说这是目录中没有未跟踪的文件.如果有未跟踪的文件,git将显示如下内容:

nothing added to commit but untracked files present (use "git add" to track)
Run Code Online (Sandbox Code Playgroud)

列出未被git跟踪的文件.

忽略的文件不计算在内吗?

忽略的文件是您明确告诉git您不想跟踪的文件.所以,如果你有一个被调用的文件.mysettings并且你添加.mysettings到项目的.gitignore文件中,git将永远不会打扰你说"嘿,你的工作目录不干净,因为你在.mysettings这里有这个未跟踪的文件." 当您运行该git status命令时.

所以,是的,您忽略的文件确实有计数.如果它们没有被忽略而且没有被跟踪,那么你的项目目录永远不会被git视为"干净".

未跟踪但未被忽略的文件是否算作"未知"?

我相信这是作者通过使用"未知"这个词得到的,是的.

所以一个干净的工作目录是一个工作目录,它具有:

  1. 没有未跟踪的文件.
  2. 没有修改过的文件,这些文件当前是git跟踪文件索引的一部分.


Aka*_*mar 2

“已修改”文件是否与已修改但未提交的跟踪文件含义相同?“跟踪文件”是指之前已提交的文件吗?

是的

被忽略的文件不算数吗?

是的,除非您明确说明,否则 git 命令不会影响被忽略的文件。

未跟踪但未被忽略的文件是否算作“未知”?

跟踪但不忽略只是简单地将文件保留在存储库中,以便其他协作者/贡献者可以获取这些文件并且不跟踪这些文件中的更改。

(我不确定git中的未知文件是什么)