将.gitignore应用于提交的文件
我已经提交了大量现在想忽略的文件。我如何告诉git现在从将来的提交中忽略这些文件 编辑:我也想从存储库中删除它们。它们是在构建之后创建的文件,或用于特定于用户的工具支持将.gitignore应用于提交的文件,git,Git,我已经提交了大量现在想忽略的文件。我如何告诉git现在从将来的提交中忽略这些文件 编辑:我也想从存储库中删除它们。它们是在构建之后创建的文件,或用于特定于用户的工具支持 编辑.gitignore以匹配要忽略的文件 git-rm--cached/path/to/file 另见: 编辑.gitignore以匹配要忽略的文件 git-rm--cached/path/to/file 另见: 编辑.gitignore后要匹配被忽略的文件,可以执行git ls files-ci--excl
.gitignore
以匹配要忽略的文件git-rm--cached/path/to/file
.gitignore
以匹配要忽略的文件git-rm--cached/path/to/file
.gitignore
后要匹配被忽略的文件,可以执行git ls files-ci--exclude standard
查看排除列表中包含的文件;然后你就可以做了
- Linux/MacOS:
git ls文件-ci——排除标准-z | xargs-0 git rm——缓存
- Windows(PowerShell):
git ls文件-ci--排除标准|%{git rm--缓存的“$”}
- Windows(cmd.exe):
for/F“令牌=*%a in('git ls files-ci--exclude standard')do@git rm--cached“%a”
xargs
中的-r
标志可防止git rm
在空结果上运行并打印其使用消息,但可能仅受GNU findutils支持。其他版本的xargs
可能有或可能没有类似的选项。)
现在,您可以在回购协议中键入
git apply gitignore
,它将为您完成这项工作 编辑.gitignore
以匹配被忽略的文件后,您可以执行git ls files-ci--exclude standard
以查看排除列表中包含的文件;然后你就可以做了
- Linux/MacOS:
git ls文件-ci——排除标准-z | xargs-0 git rm——缓存
- Windows(PowerShell):
git ls文件-ci--排除标准|%{git rm--缓存的“$”}
- Windows(cmd.exe):
for/F“令牌=*%a in('git ls files-ci--exclude standard')do@git rm--cached“%a”
xargs
中的-r
标志可防止git rm
在空结果上运行并打印其使用消息,但可能仅受GNU findutils支持。其他版本的xargs
可能有或可能没有类似的选项。)
现在,您可以在回购协议中键入
git apply gitignore
,它将为您完成这项工作 将文件保留在回购协议中,但忽略将来对其所做的更改:
git update-index --assume-unchanged <file>
原答案的功劳
将文件保留在回购协议中,但忽略将来对其所做的更改:
git update-index --assume-unchanged <file>
原答案的功劳
老问题,但我们中的一些人是在
git posh
(powershell)。这是一个解决方案:
git ls-files -ci --exclude-standard | foreach { git rm --cached $_ }
老问题,但我们中的一些人是在git posh(powershell)。这是一个解决方案:
git ls-files -ci --exclude-standard | foreach { git rm --cached $_ }
确保您的实际回购是最新版本
.gitignore
git rm-r——缓存。
(删除所有文件)git add.
(重新添加所有文件)然后照常提交确保您的实际回购是最新版本
.gitignore
git rm-r——缓存。
(删除所有文件)git add.
(重新添加所有文件)gitignore
文件git rm -r --cached foldername
gitignore
文件git rm -r --cached foldername
不过有很多文件。我不想对每一个都这样做。文件在任何公共目录中吗?如果不是,问题就归结为一个shell使用问题,而不是git问题。确实需要一个“我在初始提交之前忘记添加我的.gitignore”模式。答案就在下面。它要求我添加标志-r才能这样做。尽管有很多文件。我不想对每一个都这样做。文件在任何公共目录中吗?如果没有,问题将归结为一个shell使用问题,而不是git问题。确实需要一个“我在初次提交之前忘记添加我的.gitignore”模式。答案在下面。它要求我添加标志-r以便能够这样做。@Wooble的可能重复答案可能类似,但这个问题恰恰描述了我所面临和需要解决的问题。这个答案直接解决了标题问题,对你的git回购协议做了最小的修改:可能重复@Wooble这个答案可能类似,但这个问题恰恰描述了我所面临和需要解决的问题。这个答案直接解决了标题问题,只需对git repo进行最小的更改:我认为xargs for mac没有-r。。。或者我的车太旧了,我不知道。。。为什么是
代码>在git之前?好。。。mine one充当别名apply gitignore=“git ls files-ci--exclude standard-z | xargs-0 git rm--cached”
。tks!在Windows上,for/F“tokens=*%a in('git ls files-ci--exclude standard')do@git rm--cached“%a”
这刚刚删除了my.gitignore