我有一个项目,并通过git共享了根文件夹。
我的同胞和我正在使用不同版本的Gradle(并且已经将项目命名为不同的东西),因此.idea文件夹(某个文件夹)中的某些内容适合放在.gitignore文件中。直到现在我还没有意识到这一点,当我的朋友拉过它时,由于使用了不同的版本而改变了许多东西,现在把它推回去了。
我已添加到.gitignore文件中:
/.idea/
但是,git似乎仍然将该文件夹中的更改发送到Github repo。
我已经检查了一些内容,包括this,this以及有关堆栈溢出的更多问题。
我运行git rm --cached .idea/
并成功地保持了更改不被推送。但是,如果我签出另一个分支然后返回到该分支,则它不包含.idea目录中的相应文件。
谢谢,
困惑的编码员
答案 0 :(得分:1)
即使您将它们添加到.gitignore
,已经在存储库中跟踪的文件也将保持不变 - 它只影响未跟踪的文件。要从git中删除文件而不从工作目录中删除文件,请使用
git update-index --force-remove yourFileName
这将标记要删除的文件而不删除它。 --force-remove
似乎只适用于单个文件,因此要删除整个文件夹,请尝试以下操作:
find .idea | xargs git update-index --force-remove