将.gitignore应用于提交的文件
我已经承诺我现在要忽略的大量文件。 我怎么能告诉git现在忽略未来提交这些文件?
编辑:我也想从存储库中删除它们。 它们是在构build之后创build的文件或用于特定用户的工具支持的文件。
- 编辑
.gitignore
以匹配您要忽略的文件 -
git rm --cached /path/to/file
也可以看看:
- 如何在不删除磁盘的情况下对文件进行混淆?
- 从Git存储库中删除文件,而不从本地文件系统中删除
- 添加后,从Git仓库中忽略目录
编辑.gitignore
以匹配被忽略的文件后,可以执行git ls-files -ci --exclude-standard
来查看排除列表中包含的文件; 你可以做git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
将其从存储库中删除(不从磁盘删除它们)。
编辑 :你也可以在.gitconfig文件中添加这个别名,以便随时随地运行它。 只需在[别名]部分下添加以下行:
apply-gitignore = !git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
( xargs
的-r
标志防止git rm
运行在一个空的结果上并打印出它的使用信息,但是只能由GNU findutils支持,其他版本的xargs
可能有也可能没有类似的选项。
现在你可以在你的repo中inputgit apply-gitignore
,它会为你做的工作!
将文件保留在回购站中,但忽略对其的更改:
git update-index --assume-unchanged <file>
并取消这个:
git update-index --no-assume-unchanged <file>
找出哪些文件已经被这样设置:
git ls-files -v|grep '^h'
信用为原始答案http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/
确保你的实际回购是最新的版本
- 编辑
.gitignore
如你所愿 -
git rm -r --cached .
-
git add .
然后照常进行
老问题,但我们中的一些人在git-posh
(powershell)。 这是解决scheme:
git ls-files -ci --exclude-standard | foreach { git rm --cached $_ }
按着这些次序:
-
添加path到
gitignore
文件 -
运行这个命令
git rm -r --cached foldername
-
通常会进行更改。
恐怕你必须从你的仓库中删除他们与git rm ignoredfile1 ignoredfile2
等一些bash大师可以肯定地帮助你一些神奇的.gitignore
– 使用find
等模式。