如何在不删除磁盘的情况下git rm文件?

Léo*_* 준영 349 git git-rm

该命令将删除系统中的文件.我的意思是它只从Git-repository中删除文件.

如何在不删除系统中的文件的情况下从Git存储库中删除该文件?

kwa*_*ord 626

根据"git help rm",

git rm --cached file
Run Code Online (Sandbox Code Playgroud)

应该做你想做的事.

  • 对我来说令人困惑的是,git-rm的手册页说它不会从你的工作目录中删除文件.但是当我不使用--cached时我看到的是该文件被重新提供. (17认同)
  • 我是Git的新手,但我已经完成了几次,然后当其他人从存储库中取出时,*他们的*本地文件被删除了.仍然在寻找是否有办法不从下一个开发人员那里删除. (9认同)
  • @gran_profaci大概是因为`git rm`有一个`-r`标志来指示递归删除,当你给它一个像`.`这样的目录名时.问题不在于是否将事物标记为已删除,而是一个关于哪些(或任何)事物的问题.并且`--cached`实际上并没有删除任何内容.它只是标志着已经完成了. (3认同)
  • @Terry,请参阅http://stackoverflow.com/questions/2604625/git-how-to-remove-file-from-index-without-deleting-files-from-any-repository (2认同)
  • 我刚刚测试了这个,它确实从磁盘中删除了文件 (2认同)

gra*_*aci 28

我试着尝试给出答案.我个人的发现是:

git rm -r --cached .
Run Code Online (Sandbox Code Playgroud)

然后

git add .
Run Code Online (Sandbox Code Playgroud)

这似乎使我的工作目录变得干净整洁.您可以将fileName放在点的位置.

  • +1` -r`:在给出前导目录名时允许递归删除. (8认同)
  • -r 不是必需的,如果你做 *.suffix (很难发现这种行为非常令人不安) (2认同)