有没有办法从文件夹中提交一个文件类型扩展名?

时间:2014-10-31 20:16:29

标签: git version-control commit file-extension

我正在学习使用git来控制我的源代码,而我在这部分仍然是真正的noob。无论如何,问题不言而喻,我有一个包含很多东西的文件夹,我只想提交" .c"扩展文件。是否有命令来执行此操作或我是否需要手动添加每个文件名?我甚至在stackoverflow上做了一个研究,我没有发现这个,也许我正在寻找错误的概念,所以任何帮助都将受到赞赏..

提前致谢

5 个答案:

答案 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

当前目录。

(来自git add documentation

答案 4 :(得分:0)

如果您与要添加的文件位于同一目录,则使用简单的*通配符可以很好地工作:

git add *.c

如果您在存储库的其他子目录中,则可以使用带有魔术签名的pathspec(如described in the git glossary)来添加扩展名为.c所有文件 在您的工作树中的任何目录中

git add :/*.c

任何以:开头的git pathspec具有特殊含义。简短的形式是,前导冒号:后跟零个或多个“魔术签名”字母。魔术签名/使模式从工作树的根开始匹配,即使从子目录内部运行命令也是如此。