我认为最好的方法是使用find命令。例如,如果你只想查找Python文件:
find -type f -regex ".*\.py$" -exec git commit {} -m "committing only and all python files" \;
与Git本身无关。Git只是从shell接收传递的文件列表,所以正则表达式匹配文件应由您的shell完成。我认为bash不能做到这一点,但其他shell可能可以。
-- <filepattern>
,其中<filepattern>
可以是一个包含通配符的单引号字符串(因此不会被shell扩展);这些通配符可以用来选择要add
的文件子集。例如:git add -- '*.el'
将会添加当前目录和嵌套目录中的所有.el
文件:通配符作用于整个名称,就像find
命令中的-wholename
一样。 - undefined.el
文件。如果存在这样的文件,shell将不会展开文件通配符模式,而是将一个字面的*.el
传递给git add
,然后git add
会将其解释为一个模式规范。 - undefinedgit add
。 - undefinedgit
生成输入。ls
来实现这一点。假设我有一个已经进行了 git 初始化的目录,其中包含以下文件:.git/
my_new_project_file.py
my_older_project_file.py
some_other_file.py
而且我想添加除了some_other_file.py
之外的所有内容。要做到这一点:
ls my*project*.py | xargs git add
git add "my*project*.py"
可以达到同样的效果。 - undefinedgit
支持通配符:git add *my_file*
git -C path/to/repo checkout '**package-lock.json'
git
必须解释通配符。
git add
和git commit
,只是我不知道是否可以使用正则表达式,这对我来说会非常方便。 - undefined