我已经提交了大量文件,现在我想忽略它们。我怎么能告诉git现在忽略这些文件从未来的提交?
编辑:我也想从存储库中删除它们。它们是在每次构建之后创建的文件,或用于特定于用户的工具支持。
我已经提交了大量文件,现在我想忽略它们。我怎么能告诉git现在忽略这些文件从未来的提交?
编辑:我也想从存储库中删除它们。它们是在每次构建之后创建的文件,或用于特定于用户的工具支持。
当前回答
编辑.gitignore以匹配要忽略的文件 Git rm——缓存/路径/到/文件
参见:
我如何git rm一个文件而不删除它从磁盘? 从Git存储库中删除文件,而不用从本地文件系统中删除它 在Git repo中添加目录后忽略该目录
其他回答
编辑.gitignore以匹配要忽略的文件 Git rm——缓存/路径/到/文件
参见:
我如何git rm一个文件而不删除它从磁盘? 从Git存储库中删除文件,而不用从本地文件系统中删除它 在Git repo中添加目录后忽略该目录
在编辑.gitignore来匹配被忽略的文件后,你可以执行git ls-files -ci——exclude-standard来查看排除列表中包含的文件;你可以这样做
Linux/MacOS: git ls-files -ci——exclude-standard -z | xargs -0 git rm——cached Windows (PowerShell): git ls-files -ci——exclude-standard | % {git rm——cached "$_"} Windows (cmd.exe): for /F "token =*" %a in ('git ls-files -ci——exclude-standard') do @git rm——cached "%a"
从存储库中删除它们(而不从磁盘中删除它们)。
编辑:您还可以在.gitconfig文件中添加它作为别名,以便您可以随时运行它。只需在[alias]部分中添加以下一行(在Windows或Mac中根据需要修改):
apply-gitignore = !git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
(xargs中的-r标志可以防止git rm在空结果上运行并打印其使用消息,但可能只有GNU findutils支持。其他版本的xargs可能有,也可能没有类似的选项。)
现在你只需在你的repo中输入git apply-gitignore,它就会为你工作!
将文件保留在repo中,但忽略未来对其的更改:
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/
İf你已经提交,你可以使用这个:
添加文件夹路径到。gitignore文件。 运行此命令删除exe文件(对于其他文件扩展名,只需写入“*extension”)。 Git rm——cached *exe 提交更改。
您应该对想要删除的每个扩展执行此操作。
老问题了,但我们中的一些人在git-posh (powershell)。这是解决方案:
git ls-files -ci --exclude-standard | foreach { git rm --cached $_ }