我可以告诉git忽略被修改(删除)但不应该提交的文件吗?
这种情况是,我在repo中有一个子目录,其中包含我根本不感兴趣的东西,所以我删除了它,以防止它出现在自动补全等(在IDE中)。
但是现在,如果我把这个文件夹添加到。gitignore,什么都没有改变,所有的东西都显示为已删除的git状态。
有没有一种方法可以让git忽略它?
(或者,当我使用git-svn时,我可以将更改提交到本地git并确保它们不会传递到svn repo吗?)
被跟踪的文件不能被忽略,因此必须首先将它们从索引中删除。添加一个.gitignore来忽略你不想要的目录,然后删除它们,并使用git rm --cached删除任何掉队者。
.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,它不会在硬重置或拉取的新更改中丢失。
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
git restore --staged index.js