我有一个文件夹,里面有很多东西,我想只提交扩展名为".c"的文件。是否有命令可以实现这个功能,还是我需要手动添加每个文件名?
我有一个文件夹,里面有很多东西,我想只提交扩展名为".c"的文件。是否有命令可以实现这个功能,还是我需要手动添加每个文件名?
对于我来说,仅仅使用 git add *.c
并没有起作用。我遇到了这样的致命错误:
git add *.php
The following paths are ignored by one of your .gitignore files:
wp-config.php
Use -f if you really want to add them.
fatal: no files added
所以,在这个变种中,Git 尝试添加被忽略的文件。
但是这样的变种:
git add \*.php
运行得非常顺利。顺便说一句,你可以以同样的方式执行git diff:
工作得非常顺畅。顺便说一下,您可以以同样的方式执行git diff:git diff -- \*.php
\
转义*
就可以解决问题了。在bash shell上只需执行add *.extension
即可正常工作。 - Suneelgit add *.js
(例如)对我有效-仅当您查看的扩展名文件在同一目录中时! git add \*.js
将.js
文件添加到所有子目录中,您是正确的。因此,如果没有反斜杠,则bash或zsh或其他内容会扩展全局,并且仅匹配当前目录,但是使用反斜杠,全局由git处理并在子文件夹中工作。 - drkvogel.c
可以是任何你想要的扩展名。git add \*.xml
对我有用,而不是像 Sergey 的答案中那样使用 git add *.xml
。 - mickeymoongit add *.c
无法工作,但是 git add \*.c
可以。也许这个答案需要更新。 - Rogerio Schmittgit add *.c
这样的命令 - 或者您使用的任何扩展名 - 将会起作用。 - Ryan Z Johnsongit add '*.c'
对我来说起作用了。 - ryuzakyl如果您只关心文件夹中直接的文件,但不担心从子文件夹添加给定扩展名的文件,则@Ryan的答案将起作用。
如果您想要递归地添加基本文件夹和所有子文件夹中具有相同扩展名的所有文件,则可以使用:
git add [path]/\*.java
要添加子目录中的*.java
文件,或者
git add ./\*.java
对于当前目录。
(来源于git add
文档)
*.xml
)包含当前文件夹和子文件夹中的文件,您可以使用以下方法:git add ':/*.xml'
git add :/*.pdf
会产生错误 "no matches found: :/*.pdf" ... 然后我看到了你的答案! - Fernando Espinosagit diff -w ':/*.md'
也适用!谢谢! - JayRizzo如果您要添加的文件与您在同一目录中,则使用简单的*
通配符即可正常工作:
git add *.c
.c
扩展名的所有文件。git add :/*.c
:
开头的 git 路径规范都有特殊含义。在简短形式中,冒号 :
后面跟着零个或多个“魔法签名”字母。魔法签名 /
使模式匹配从工作树的根开始,即使您正在子目录中运行命令也是如此。如果你使用带有zsh的mac,你需要使用引号。
git add *.rb
zsh: no matches found: *.rb
使用引号应该可以正常工作:
git add '*.rb'
对我来说,被接受的答案并没有起作用。你需要在通配符前面添加\
,就像下面这样。
git add \*.c
git add \*.py
git commit -m "My commit message" -- "*.myFileExtention"
示例 - 提交所有 Kotlin 文件:
git commit -m "My commit message" -- "*.kt"
对于你来说,这将是:
git commit -m "My commit message" -- "*.c"
git add *.scss
git add *.c && git commit -m '我的提交'
- Ryangit add .c
,让我在这里检查一下是否有效哈哈。 - Victor Oliveira