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

Git提交为何包含本地未暂存的文件修改?

问题原因分析

你的核心问题出在提交时使用了自动暂存的参数,而非Git的暂存逻辑本身有问题。

默认情况下,git commit只会提交已经通过git add加入暂存区的内容——也就是你步骤3里添加的包含row2的版本。但如果提交时用了git commit -a(或者git commit --all),Git会自动把所有已追踪文件的工作区修改先暂存,再一起提交,这就导致你未手动暂存的row3也被包含进去了。

再看你步骤5的git status -s输出MM FileA.txt,这个输出的含义是:

  • 第一个M:暂存区的文件和仓库HEAD版本有差异(对应你添加row2的修改)
  • 第二个M:工作区的文件和暂存区版本有差异(对应你后来添加row3的修改)

如果用标准的git commit(不带任何自动暂存参数),提交的只会是暂存区里带row2的版本,工作区的row3修改会保留,不会被提交。你可以再试一次这个操作验证。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:59:14