【问题标题】:How to quickly incorporate all untracked files and directories in .gitignore?如何快速将所有未跟踪的文件和目录合并到 .gitignore 中?
【发布时间】:2015-01-15 15:55:02
【问题描述】:

我有一个大型 Git 存储库,其中包含许多应忽略的随机文件和目录。当我运行git status 时,我得到了很多噪音。

那些文件和目录不遵循特定的模式。我可以手动将它们一一添加到.gitignore,但这很乏味。

有没有一种快速的方法可以将git status 返回的许多或全部“未跟踪文件”添加到.gitignore?这似乎是一项显而易见的任务,我认为必须存在解决方案。

【问题讨论】:

  • 是的,有办法。在.gitignore 文件中,您可以一次性忽略很多东西,只在文件的下方“忽略”其中一些;见this。但是,要获得比这更具体的答案,您需要告诉我们您的工作树的结构。
  • 为什么不从git status的输出中突出并复制所有文件路径(一次)并将它们粘贴到您的.gitignore文件中?
  • 这可能有助于更好地组织您被忽略的文件,将它们保存在一个被忽略的子文件夹中。
  • 有人编辑了我的问题的标题,但现在它不再真正反映我的初衷。也许更好的标题是“如何在 .gitignore 中包含所有未跟踪的文件?”

标签: git gitignore


【解决方案1】:

你可以创建一个简单的 Git 别名,然后这样调用它:

已编辑:回应 ddd kkk 的评论

git config alias.ignore-untracked "! git status -s | grep '??' | perl -pe 's/.{3}/\//' >>  .gitignore"
git ignore-untracked

【讨论】:

    【解决方案2】:

    基于 Joseph Strauss 的解决方案,我使用的最终别名定义是:

    git config alias.ignore-untracked "! git status -s | grep '??' | cut -d\  -f2- | awk '{print \"/\" \$0; }' | sed '1i # ignore-untracked: $(date)' >> .gitignore"
    

    这会在添加到 gitignore 之前添加一个注释,表明文件的添加日期。

    这段代码执行如下:

    git ignore-untracked
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 2019-10-30
      • 2012-06-16
      • 2018-07-07
      • 2010-11-15
      • 1970-01-01
      • 2022-01-01
      相关资源
      最近更新 更多