【问题标题】:With git, how can I perform a git add and still have it ignore the patterns in .gitignore?使用 git,我如何执行 git add 并且仍然让它忽略 .gitignore 中的模式?
【发布时间】:2014-03-07 05:18:09
【问题描述】:

我想做类似git add *.java 之类的事情,而不是因为其中一个文件与 .gitignore 匹配而让它抛出。

例如: 在我的目录中,我有

ignored.java
something.java
somethingelse.java 
somethingevenmoreelse.java.

最后三个文件是我刚刚创建的。然后我想做git add *.java

并让它添加这三个文件。换句话说,而不是给我

The following paths are ignored by one of your .gitignore files:
ignored.java
Use -f if you really want to add them.
fatal: no files added

...我宁愿它只是忽略 .gitignored 文件并添加其余文件。

【问题讨论】:

  • 使用 zsh 并发现制表符补全的真正威力!
  • 在zsh中,如果你输入git add s*.java并按tab,它会自动补全以s开头的三个.java文件。此外,如果您只需键入 git add 并按 Tab,它只会完成未暂存的文件。

标签: git


【解决方案1】:

如果你引用 glob 模式,那么它将由 git 而不是 shell 进行解释,它会在添加其余文件之前忽略被忽略的文件而不会出错。

git add '*.java'

或者:

git add \*.java

【讨论】:

  • 这绝对是正确的方法。 Git 将解释文件名 args 中的 glob 模式,并将适当地应用 gitignore 模式而不会引发错误。抛出的错误是因为您明确地将一个被忽略的文件传递给git add,它认为您一定做了一些您不打算做的事情。
猜你喜欢
  • 2014-11-12
  • 2011-07-17
  • 2012-07-12
  • 2011-09-30
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 2010-10-13
相关资源
最近更新 更多