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

时间:2009-03-17 17:27:00

标签: git git-svn ignore

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

情况是我在repo中有一个子目录,其中包含我根本不感兴趣的东西,因此我将其删除以防止它出现在自动完成等中(在IDE中)。

但是现在,如果我将该文件夹添加到.gitignore,只是没有任何变化,所有内容都显示为被git status删除。

有没有办法让git忽略它?

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

6 个答案:

答案 0 :(得分:253)

查看git-update-index man page和--assume-unchanged位并相关。

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

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

或特定文件

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

答案 1 :(得分:38)

更新更好的选择是 git update-index --skip-worktree在硬重置或拉动的新变化中不会丢失。

请参阅http://schacon.github.com/git/git-update-index.html

上的手册页

并在http://fallengamer.livejournal.com/93321.html

进行比较

答案 2 :(得分:6)

跟踪文件不能被忽略,因此您必须先从索引中删除它们。添加忽略您不想要的目录的.gitignore,然后删除它们,并删除任何带git rm --cached的落后者。

答案 3 :(得分:5)

我通常做的是

  

git stash

     

git whatever-else

     

git stash apply

     

git stash clear

答案 4 :(得分:3)

使用此代码

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

答案 5 :(得分:0)

在我的情况下有效的方法:

git restore --staged filename

示例:git restore --staged index.js