我初始化了git存储库并进行了第一次提交。现在,我在这个目录中运行./configure,./make all以便它填充许多不想跟踪的额外文件/文件夹。
我想做的是将所有这些未跟踪的文件一劳永逸地添加到我的 gitignore 中。有什么简单的方法吗?
我可以摆脱一些不必要的文件,例如*.o或*.mod通过在 .gitignore 中指定适当的行,但这并不能解决问题。
试试这个:
git status -s | grep -e "^\?\?" | cut -c 4- >> .gitignore
说明:git status -s给你一个简短的状态版本,没有标题。grep只接受以 开头的行,??即未跟踪的文件,cut删除??,其余的将其添加到.gitignore文件中。
一个更简单的命令是
git ls-files --others --exclude-standard >> .gitignore
您可能想要编辑结果以用通配符替换重复的模式。
如果您的工作树除了未跟踪的文件/文件夹之外是干净的,则可以使用更短的解决方案awk:
git status -s | awk '{print $2}' >> .gitignore
在接受的答案中, grep 部分导致了我的问题(即没有过滤,而是显示了所有行,包括以M(modified) 开头的行),并替换"^\?\?"为"^??"我解决了它。我在 win 10 上并在 msys2 的 bash 中使用它。