You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行git commit后,“未暂存变更”中的文件为何消失?

Git提交指定文件时的行为解析

当你执行git commit -m "..." a.txt时,这个命令的特殊行为导致了未暂存变更的消失:

  • 不同于不带文件名的git commit(仅提交已暂存的内容),在commit后指定具体文件名时,Git会自动先执行一次git add a.txt操作,把该文件当前工作区的最新版本重新暂存,覆盖之前暂存区里的旧版本。
  • 这一步操作后,工作区的a.txt和暂存区的内容完全一致,所以原本的“未暂存变更”就消失了。
  • 随后Git将更新后的暂存版本提交到仓库,暂存区的内容被清空,最终git status里两个区域的a.txt记录都消失了。
  • 正因为提交的是工作区最后修改的版本,所以git show HEAD:a.txt会显示你最后修改的内容。

如果执行的是git commit -m "..."(不指定文件名),则只会提交之前git add的版本,工作区后续的修改会保留在“未暂存变更”区域。

内容的提问来源于stack exchange,提问作者hipparch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 09:55:53