使用bash rm删除文件未取消暂存就提交,Git会如何处理?
Git删除文件提交后的状态说明
- 核心逻辑:Git的提交完全以暂存区的内容为准,和本地工作区的文件状态无关。
- 分两种场景说明你的问题:
- 若文件原本已在Git仓库中,你用
rm删除本地工作区文件后,未将删除操作暂存(也就是没执行git add <文件名>):
这时候暂存区里仍保留着该文件的最新版本,直接执行git commit的话,提交的内容会包含这个文件,仓库里会继续保留它——因为Git没收到你要删除它的指令。 - 若你用
rm删除本地文件后,已经将删除操作暂存(执行了git add <文件名>):
暂存区里的该文件会被移除,提交后仓库里的这个文件就会被彻底删除。
- 若文件原本已在Git仓库中,你用
你自行尝试后看不懂结果,大概率是没搞清楚“暂存区状态”和“工作区状态”的区别——记住,提交只看暂存区,工作区的变更没进暂存区的话,提交时不会被记录。
内容的提问来源于stack exchange,提问作者elakhdar_ayoub
相关产品推荐
相关产品推荐

