Git 执行提交时(文件被提交到存储库的事实除外),暂存区域(和暂存文件)会发生什么情况?

Git 执行提交时(文件被提交到存储库的事实除外),暂存区域(和暂存文件)会发生什么情况?,git,Git,我试图将提交暂存文件时发生的情况可视化 一旦执行了提交,我就知道文件将被提交到存储库。但是,文件是否也保留在阶段(索引)中,还是从阶段(索引)中删除?执行提交时,暂存区域(和暂存文件)会发生什么情况?暂存(索引)是 HEAD引用的提交副本 加上“暂存文件”引起的任何附加更改 进行提交时,索引的内容将成为新提交的内容,HEAD将更改为引用新提交。此时,索引成为HEAD(根据定义)引用的提交的副本,但没有任何其他更改 因此,不,文件不会从索引中删除。阶段(索引)是 HEAD引用的提交副本 加上

我试图将提交暂存文件时发生的情况可视化

一旦执行了提交,我就知道文件将被提交到存储库。但是,文件是否也保留在阶段(索引)中,还是从阶段(索引)中删除?执行提交时,暂存区域(和暂存文件)会发生什么情况?

暂存(索引)是

  • HEAD引用的提交副本
  • 加上“暂存文件”引起的任何附加更改
进行提交时,索引的内容将成为新提交的内容,
HEAD
将更改为引用新提交。此时,索引成为
HEAD
(根据定义)引用的提交的副本,但没有任何其他更改

因此,不,文件不会从索引中删除。

阶段(索引)是

  • HEAD引用的提交副本
  • 加上“暂存文件”引起的任何附加更改
进行提交时,索引的内容将成为新提交的内容,
HEAD
将更改为引用新提交。此时,索引成为
HEAD
(根据定义)引用的提交的副本,但没有任何其他更改


因此,不,文件没有从索引中删除。

@Youssef13:虽然这是一个合理的实验,但很难看到索引中实际包含的内容:
git status
没有向您显示存在的内容,它只是向您显示将存在的内容与其他地方的内容进行比较的结果。如果您知道git ls文件--stage
,您可以使用它来查看索引中的内容,但并非所有教程都会告诉您这一点。@Youssef13:虽然这是一个合理的实验,但很难看到索引中的实际内容:
git status
不会显示索引中的内容,它只是向你展示了比较其他地方的结果。如果您了解git ls文件--stage
,您可以使用它查看索引中的内容,但并非所有教程都告诉您这一点。