我有一个包含很多内容的文件夹,我只想提交“.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 -- \*.php
如果您想添加具有特定文件扩展名的所有文件,您所要做的就是在使用通配符暂存文件时指定它。
git add *.c
这里
.c
可以是您想要的任何扩展名。
稍微改动一下复制其他答案:通过掩码将文件包含在当前文件夹和子文件夹中,例如
*.xml
你可以使用:
git add ':/*.xml'
注意:使用单引号将阻止 shell(sh、bash、zsh 等)扩展
字符,并将参数按原样传递给 git,以便 git 处理 glob 扩展而不是您的 shell。*
如果没有,引号将被扩展,传递给 git 的实际参数将是由 生成的匹配文件列表 你的外壳,例如git add *.xml
git add 1.xml 2.xml 3.xml...
使用简单的
*
通配符效果很好,如果 您与要添加的文件位于同一目录:
git add *.c
如果您位于存储库的不同子目录中,那么您可以使用带有魔术签名的路径规范,如 git 术语表中所述,在工作目录中的任何目录中添加带有 .c
扩展名的 所有文件
树:
git add :/*.c
任何以
:
开头的 git 路径规范都有特殊含义。在缩写形式中,前导冒号
:
后跟零个或多个“神奇签名”字母。神奇的签名 /
使模式从工作树的根开始匹配,即使您从子目录内部运行命令也是如此。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
添加了所有此类关闭文件。