我正在阅读Git v2.9.1的release notes,其中一项更改为:
“git status”用来表示“工作目录”,意思是“工作树”。
两者有什么区别?什么时候git status
意味着“工作树”?
答案 0 :(得分:18)
这样做是为了提高一致性并避免歧义。正如commit that changed this behavior:
中所述工作目录很容易与当前目录混淆。
因此,这项更改是为了更好地消除工作树之间的歧义,这意味着您的存储库已经签出的位置,以及当前工作目录运行git status
命令,可能位于工作树下面的某个位置(如果设置GIT_WORK_TREE
环境变量,可能不会)。
答案 1 :(得分:5)
意义上存在细微差别。
目录是一个单一的东西 - 一个文件夹,一个文件集合 - 而工作树意味着一个像文件和目录结构的树一样引用。
工作树是指包含.git文件夹的目录,包括所有子目录和文件。
要更全面地理解这一点,你必须了解是谁创建了Git:Linus Torvalds。 Git中的所有内容都与Linux命名约定和思维过程密切相关,其中包括Git"如何思考"关于文件或文件系统:
来自3.1.3. More file system layout
为方便起见,Linux文件系统通常被认为是树结构。在标准的Linux系统上,您会发现布局通常遵循以下方案。
所以它被称为"工作树"因为Linux内核/文件系统开发人员构建了Git,而在Linux中,文件系统被认为是"树"。
答案 2 :(得分:3)
当前目录
是您当前的文件夹,命令行 ls 列出当前目录中的项目
工作树
是您当前的目录以及其中的所有目录路径,如果是我,我会将其重命名为“工作目录树”,因此术语“树”更适合于目录你头脑中的结构,而不是一个git树结构
工作目录
含糊不清地用于指代这两种情况,不要使用这个词。它让每个人都感到困惑。