我正在学习使用git来控制我的源代码,而我在这部分仍然是真正的noob。无论如何,问题不言而喻,我有一个包含很多东西的文件夹,我只想提交" .c"扩展文件。是否有命令来执行此操作或我是否需要手动添加每个文件名?我甚至在stackoverflow上做了一个研究,我没有发现这个,也许我正在寻找错误的概念,所以任何帮助都将受到赞赏..
提前致谢
答案 0 :(得分:12)
如果要添加具有特定文件扩展名的所有文件,您只需在使用通配符转储文件时指定它。
git add *.c
此处.c
可以是您想要的任何扩展程序。
答案 1 :(得分:10)
对我来说,只有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
答案 2 :(得分:3)
稍微改变一下复制其他答案:通过掩码包含当前文件夹和子文件夹中的文件,例如*.xml
你可以使用:
git add ':/*.xml'
<块引用>
注意:使用单引号将阻止 shell(sh、bash、zsh 等)扩展 *
字符并将参数按原样传递给 git,以便 git 处理 glob 扩展而不是您的壳。
答案 3 :(得分:1)
@Ryan的答案将起作用。
如果要在基础文件夹中添加具有相同扩展名的所有文件,然后以递归方式添加所有子文件夹,则可以使用:
git add [path]/\*.java
从子目录添加Java文件,或
git add ./\*.java
当前目录。
答案 4 :(得分:0)
如果您与要添加的文件位于同一目录,则使用简单的*
通配符可以很好地工作:
git add *.c
如果您在存储库的其他子目录中,则可以使用带有魔术签名的pathspec(如described in the git glossary)来添加扩展名为.c
的所有文件 在您的工作树中的任何目录中:
git add :/*.c
任何以:
开头的git pathspec具有特殊含义。简短的形式是,前导冒号:
后跟零个或多个“魔术签名”字母。魔术签名/
使模式从工作树的根开始匹配,即使从子目录内部运行命令也是如此。