为什么 git commit 后“Changes not staged for commit”中的文件消失了?

问题描述 投票:0回答:1

在使用 Git 时,我执行了以下步骤:

  1. 对文件进行了更改,例如
    a.txt
  2. 使用 git add a.txt 来暂存它。
  3. a.txt
  4. 进行了额外更改

此时,运行 git status 显示在

“要提交的更改”
“未暂存进行提交的更改”中都有 a.txt 的条目。

  1. 已执行
    git commit -m "..." a.txt

现在您注意到 a.txt 已从“要提交的更改”和“未暂存进行提交的更改”中消失。

为什么会发生这种事?

a.txt
git commit
之后从暂存区域消失是正常的,但为什么它也从“Changes not staged for commit”中消失?

我尝试了

git show HEAD:a.txt
- 结果与上一个版本相同。

git git-commit
1个回答
1
投票

这些更改“消失”是因为您提交了它们。

根据 git-commit 文档(强调我的),

可以通过多种方式指定要提交的内容: ... 3. 通过将文件列为提交命令的参数(不带 --interactive 或 --patch 开关),在这种情况下,提交将忽略索引中暂存的更改,而是记录列出的文件的当前内容(其中Git 必须已经知道);

你说你跑了

git commit -m "..." a.txt
。这会提交
a.txt
的当前状态,无论您是否进行了分阶段更改。这也解释了为什么
git show HEAD:a.txt
匹配该文件的当前状态 - 因为您提交了该文件的当前状态 - 以及为什么
a.txt
不再显示在“要提交的更改”或“尚未暂存提交的更改”中“ - 因为该文件中的每个更改都已提交。

© www.soinside.com 2019 - 2024. All rights reserved.