将.gitignore应用于已提交的文件

use*_*954 399 git

我已经提交了大量我现在想要忽略的文件.我如何告诉git现在忽略未来提交的这些文件?

编辑:我也想从存储库中删除它们.它们是在构建之后创建的文件或用于特定于用户的工具支持.

Jon*_*len 579

编辑.gitignore后匹配被忽略的文件,您可以git ls-files -ci --exclude-standard查看排除列表中包含的文件; 然后,您可以git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached将其从存储库中删除(不从磁盘中删除它们).

编辑:您还可以将其作为别名添加到.gitconfig文件中,以便您可以随时运行它.只需在[alias]部分下添加以下行:

apply-gitignore = !git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
Run Code Online (Sandbox Code Playgroud)

(该-r标志xargs阻止git rm在空结果上运行并打印出其使用消息,但可能只有GNU findutils支持.其他版本xargs可能有也可能没有类似的选项.)

现在您只需输入git apply-gitignore您的仓库,它就能为您完成工作!

  • 在Windows`for/F"tokens =*"%a in('git ls-files -ci --exclude-standard')do @git rm --cached"%a"` (17认同)
  • 我认为xargs for mac没有-r ...或者我的错误/旧,我不知道......为什么`之前的`!`?好吧...我的一个工作是`alias apply-gitignore ="git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached"`.TKS! (10认同)

Mat*_*all 438

  1. 编辑.gitignore以匹配您要忽略的文件
  2. git rm --cached /path/to/file

也可以看看:

  • 虽然有很多文件.我不想为每一个人这样做 (12认同)
  • 确实需要一个'我忘记添加我的.gitignore直到我的初始提交'模式之后. (9认同)
  • 答案就在这个之下. (8认同)
  • 它要我添加标志-r才能这样做. (3认同)

小智 125

将文件保留在repo中但忽略对它的未来更改:

git update-index --assume-unchanged <file>
Run Code Online (Sandbox Code Playgroud)

并撤消这个:

git update-index --no-assume-unchanged <file>
Run Code Online (Sandbox Code Playgroud)

找出以这种方式设置的文件:

git ls-files -v|grep '^h'
Run Code Online (Sandbox Code Playgroud)

http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/的原始答案的功劳

  • 这是_only_答案,正是标题问题所要求的.完善!大多数其他答案都是不必要地搞乱文件. (6认同)

Thé*_*ali 79

确保您的实际回购是最新版本

  1. .gitignore根据需要编辑
  2. git rm -r --cached .
  3. git add .

然后照常提交

  • 这应该是公认的答案,因为问题明确指出有很多文件需要删除. (11认同)
  • 请注意,如果您的存储库很大,则第2步可能需要一段时间。 (2认同)
  • 这只会导致从索引中删除*所有*文件![这个](/sf/ask/148799731/) 救了我:`git reset HEAD`(记住要隐藏任何更改) (2认同)
  • 步骤 2 删除了所有内容,是的,但是步骤 3 应该读取所​​有内容,除了由于 .gitignore 而失败的那些。 (2认同)

Cri*_*ole 10

老问题,但我们中的一些人git-posh(powershell).这是解决方案:

git ls-files -ci --exclude-standard | foreach { git rm --cached $_ }
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

129630 次

最近记录:

8 年,6 月 前