忽略git中修改(但未提交)的文件?

我可以告诉git忽略被修改(删除)但不应该提交的文件吗?

这种情况是,我在repo中有一个子目录,其中包含我根本不感兴趣的东西,所以我删除了它,以防止它出现在自动补全等(在IDE中)。

但是现在,如果我把这个文件夹添加到。gitignore,什么都没有改变,所有的东西都显示为已删除的git状态。

有没有一种方法可以让git忽略它?

(或者,当我使用git-svn时,我可以将更改提交到本地git并确保它们不会传递到svn repo吗?)

92582 次浏览

被跟踪的文件不能被忽略,因此必须首先将它们从索引中删除。添加一个.gitignore来忽略你不想要的目录,然后删除它们,并使用git rm --cached删除任何掉队者。

我通常做的是

git stash


git whatever-else


git stash apply


git stash clear

检查Git-update-index手册页和——assume-unchanged位。

当我遇到你的问题时,我会这样做

git update-index --assume-unchanged dir-im-removing/

或者一个特定的文件

git update-index --assume-unchanged config/database.yml

一个更新更好的选择是 git update-index --skip-worktree,它不会在硬重置或拉取的新更改中丢失。

参见手册页

http://fallengamer.livejournal.com/93321.html的比较

使用这段代码

git update-index --assume-unchanged file-name

我的情况是:

git restore --staged filename

例如:git restore --staged index.js