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

toiithl6  于 11个月前  发布在  Git
关注(0)|答案(1)|浏览(156)

在使用Git时,我做了以下步骤:
1.对文件(如a.txt)进行了更改。
1.使用 git add a.txt 来暂存它。
1.对a.txt进行了其他更改
此时,正在运行的git status显示在 “Changes to be committed”“Changes not staging for commit " 中都有a.txt的条目。
1.已执行git commit -m "..." a.txt
现在,您注意到a.txt已从“要提交的更改”和“未准备提交的更改”中消失。
"为什么会这样“
a.txtgit commit之后从暂存区域中消失是正常的,但为什么它也从“未暂存用于提交的更改”中消失了?
我尝试了git show HEAD:a.txt-结果和上一个版本一样。

pbossiut

pbossiut1#

这些变化“消失”是因为你提交了它们。
根据git-commit docs(强调我的),
要提交的内容可以通过几种方式指定:. 3.通过将文件作为提交命令的参数列出(没有--interactive或--patch开关),在这种情况下,提交将忽略索引中暂存的更改,而是记录列出文件的当前内容(Git必须已经知道这些内容);
你说你运行了git commit -m "..." a.txt。这将提交a.txt的当前状态,这也解释了为什么git show HEAD:a.txt匹配该文件的当前状态-因为您提交了该文件的当前状态-以及为什么a.txt不再显示在“要提交的更改”或“尚未提交的更改”中-因为该文件中的所有更改都已提交。

相关问题