.gitignore,git add和文件神秘地消失了

时间:2016-06-20 19:50:19

标签: git version-control gitignore git-add

我有一个项目,并通过git共享了根文件夹。

我的同胞和我正在使用不同版本的Gradle(并且已经将项目命名为不同的东西),因此.idea文件夹(某个文件夹)中的某些内容适合放在.gitignore文件中。直到现在我还没有意识到这一点,当我的朋友拉过它时,由于使用了不同的版本而改变了许多东西,现在把它推回去了。

我已添加到.gitignore文件中:

/.idea/

但是,git似乎仍然将该文件夹中的更改发送到Github repo。

我已经检查了一些内容,包括thisthis以及有关堆栈溢出的更多问题。

我运行git rm --cached .idea/并成功地保持了更改不被推送。但是,如果我签出另一个分支然后返回到该分支,则它不包含.idea目录中的相应文件。

谢谢,

困惑的编码员

1 个答案:

答案 0 :(得分:1)

即使您将它们添加到.gitignore,已经在存储库中跟踪的文件也将保持不变 - 它只影响未跟踪的文件。要从git中删除文件而不从工作目录中删除文件,请使用

git update-index --force-remove yourFileName

这将标记要删除的文件而不删除它。 --force-remove似乎只适用于单个文件,因此要删除整个文件夹,请尝试以下操作:

find .idea | xargs git update-index --force-remove