我可以告诉git忽略被修改(删除)但不应该被提交的文件吗?
情况是我在repo中有一个子目录,其中包含我根本不感兴趣的东西,因此我将其删除以防止它出现在自动完成等中(在IDE中)。
但是现在,如果我将该文件夹添加到.gitignore,只是没有任何变化,所有内容都显示为被git status删除。
有没有办法让git忽略它?
(或者,因为我正在使用git-svn,我可以将更改提交到本地git并确保它们不会传递给svn repo吗?)
答案 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
在硬重置或拉动的新变化中不会丢失。
答案 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