什么;git commit与lt;文件>;和git提交——仅限?
似乎这两个选项的功能相同 也许他们之间有一个我看不到的差异,因为我的英语阅读能力差 你能告诉我真相吗?git commit——从给定文件中获取提交消息。在参数中,您应该输入要从存储库中获取的文件的名称 git commit—only是git commit的默认操作模式。git commit—从给定文件获取提交消息。在参数中,您应该输入要从存储库中获取的文件的名称什么;git commit与lt;文件>;和git提交——仅限?,git,Git,似乎这两个选项的功能相同 也许他们之间有一个我看不到的差异,因为我的英语阅读能力差 你能告诉我真相吗?git commit——从给定文件中获取提交消息。在参数中,您应该输入要从存储库中获取的文件的名称 git commit—only是git commit的默认操作模式。git commit—从给定文件获取提交消息。在参数中,您应该输入要从存储库中获取的文件的名称 git commit--only是git commit的默认操作模式。答案在您列出的文档片段中: --仅限 通过获取命令行上指定路径的
git commit--only是git commit的默认操作模式。答案在您列出的文档片段中:
--仅限
通过获取命令行上指定路径的更新工作树内容来进行提交,而不考虑为其他路径暂存的任何内容。如果命令行中给出了任何路径,则这是git commit的默认操作模式,在这种情况下可以忽略此选项
在命令行中添加文件路径时,--only
不会向命令中添加任何内容,您在问题中描述的第二个选项的语义适用
另一方面,正如--仅的其余描述所解释的,如果它与--允许空的--修改,一起使用,索引的内容(暂存文件)将被忽略
通过添加当前暂存的文件并更改其提交消息来修改当前提交。使用--only
,不会修改提交的内容(忽略暂存文件),只更新提交消息
我不清楚——只有会改变用户的行为
但是,--allow empty
在Git的日常工作中没有任何用处。添加它是为了帮助将其他VCS E的存储库自动转换为Git。F.e.当创建一个分支时,Subversion会创建一个新的提交,从Git的角度来看它是空的--allow empty
允许在将Subversion存储库转换为Git时创建此类空提交。答案在您列出的文档片段中:
--仅限
通过获取命令行上指定路径的更新工作树内容来进行提交,而不考虑为其他路径暂存的任何内容。如果命令行中给出了任何路径,则这是git commit的默认操作模式,在这种情况下可以忽略此选项
在命令行中添加文件路径时,--only
不会向命令中添加任何内容,您在问题中描述的第二个选项的语义适用
另一方面,正如--仅的其余描述所解释的,如果它与--允许空的--修改,一起使用,索引的内容(暂存文件)将被忽略
通过添加当前暂存的文件并更改其提交消息来修改当前提交。使用--only
,不会修改提交的内容(忽略暂存文件),只更新提交消息
我不清楚——只有会改变用户的行为
但是,--allow empty
在Git的日常工作中没有任何用处。添加它是为了帮助将其他VCS E的存储库自动转换为Git。F.e.当创建一个分支时,Subversion会创建一个新的提交,从Git的角度来看它是空的--allow empty
允许在将Subversion存储库转换为Git时创建此类空提交。有三种方法可以使用Git提交
(无--amend
):
git commit
,不命名任何文件:这意味着提交当前索引
git提交--仅文件1。。。fileN
,您可以在其中命名一些文件并使用--only
选项。我们稍后将对此进行描述
git提交--包括文件1。。。fileN
,您可以在其中命名一些文件,并使用--include
选项。我们稍后也将对此进行描述
如果您选择列出一些非零数量的文件,但省略了--only
选项,Git将采用--only
选项。如果不需要--only
选项,则必须指定--include
选项。如果选择在命令行中列出一些文件,则必须选择这两个选项中的一个,如果选择失败,Git将为您选择。所以--only
只是--include
的反面
索引及其在提交中的作用
要正确理解所有三种操作模式,您需要了解Git从索引构建提交。通常它使用索引。这是上面列出的第一种模式:git commit
,不带任何文件名,现在使用索引中的任何内容
索引本身是一种隐藏的数据结构。它有三个名字,要么反映了它的重要性,要么反映了它相当糟糕的名字,即“索引”。第二个名称是暂存区域,因为索引的作用是充当构建或暂存下一次提交的位置。这个索引或暂存区域的第三个名称是缓存
索引开始时保存当前提交中所有文件的副本,正如运行git checkout分支时提取的那样。这些文件从分支提示提交复制到索引/暂存区域,也复制到工作树中,您可以在其中处理它们。名称索引来自这样一个事实:索引跟踪