我在所有内容都提交后,将.gitignore添加到了我的项目中。现在我想运行类似以下命令的命令:
git rm --cached *everything_listed_in_gitignore*
如何实现这一点?提前感谢您。
git rm -r --cached .
git add .
有一个更简短的版本,答案来自这里。
您还可以根据.gitignore从存储库中删除文件,而无需从本地文件系统中删除它们:
git rm --cached `git ls-files -i -X .gitignore`
git rm --cached $(git ls-files -i -X .gitignore)
我总是使用以下命令来移除在我的 .gitignore
文件中列出的文件:
grep -vP "^(#|\$)" .gitignore|sed "s/^\///"|xargs rm -f
这将在 .gitignore
文件中查找不匹配正则表达式 ^(#|\$)
的行(使用 grep 命令的 -v
选项),与以 #
开头的行(注释)或空行相匹配。
接下来,sed
命令将移除行首的斜杠 /
。
结果将通过 xargs
传递给 rm -f
命令,你也可以用 git rm --cached
替换它。
注意:
你的 .gitignore
文件中可以包含类似于 *.tmp
的条目以忽略整个项目中的所有 .tmp
文件。上述命令仅会从根目录中删除 *.tmp
文件。只有完整路径才能被正确处理。