一、问题
在本地删除某些文件后,如果还是采用如下命令推送会发现远程仓库还是有本地已经删掉的文件
git add .
git commit -m "xxx"
git push origin master
二、解决方案
在本地删除了文件后,这些文件会处于“not staged”状态,如下图示例:
也就是说要删除的文件信息并没有更新到暂存区。
使用git add .
只会更新增加的文件信息到暂存区,而删除的文件信息并不会更新。这时候有两种选择:
- 1、使用
git rm xxx
一个个手动删除文件(rm
命令没办法使用git rm .
一起更新全部的文件删除信息) - 2、使用
git commit -am
命令,该命令会在提交到本地仓库的时候,会先更新修改和删除的文件信息到暂存区。(注意它不会提交新增加的文件信息!)
注:加了-a,在 commit 的时候,能帮你省一步 git add ,但也只是对修改和删除文件有效, 新文件还是要 git add,不然就是 untracked 状态。