【问题标题】:Does git support wildcards in paths?git 是否支持路径中的通配符?
【发布时间】:2011-06-28 01:54:06
【问题描述】:

我已经查看、搜索和阅读了文档,但实际上找不到任何关于此的内容。

基本上,我希望能够做到这一点:

git reset -- *.exe

git reset -- */some_executable.exe

而不是这个:

git reset -- some/very/long/path/some_executable.exe

如果能够做到这一点,那就太好了:

git reset -- topleveldirectory/another/subdirectory/*

而不是这个:

git reset -- topleveldirectory/another/subdirectory/SomeFile.cpp
git reset -- topleveldirectory/another/subdirectory/SomFile.h

认为我可以在 git-add 中使用通配符 * 来添加文件,但没有找到任何适用于上述情况的方法。

对我可以在哪里查找更多信息有任何建议或指示吗?

使用:64 位 Windows 7 上的 git 版本 1.7.3.1.msysgit.0

【问题讨论】:

    标签: git msysgit


    【解决方案1】:

    要从 git 文件夹中递归重置所有 exe 文件,您可以执行以下操作:

    git reset -- \*.exe
    

    或者,如果您想在特定子文件夹中添加所有 java 文件,您也可以这样做,如下所示:

    git add ./some/sub/folder/path/**/*.java
    

    其中 ** 表示从路径中的这一点开始递归的所有文件夹

    【讨论】:

      【解决方案2】:

      但是,在某些情况下,确实需要以特定方式使用通配符来定位特定的文件子集,而不仅仅是所有文件,尤其是在使用 git rmgit checkoutgit reset 时。您可以通过简单地转义通配符来实现相同的目的。

      git rm app/assets/javascript/templates/projects/\*.jst.ejs
      

      【讨论】:

        【解决方案3】:

        至少在子文件夹/子文件的情况下,不需要通配符。

        git add .
        

        ...添加当前目录 (.) 及其下的所有内容。同样的道理……

        git add files/
        

        ...这将添加./files./files/foo.txt./files/foo/bar.txt

        【讨论】:

          【解决方案4】:

          Git 确实支持一些路径规范通配符,但您需要小心地对字符进行外壳转义,以免在您的情况下它们不会被 msys bash 解释,它不支持更复杂的通配符扩展。

          编辑:另外,对于您的重置示例,您可以将目录作为参数传递给 git reset 并且 git 将递归操作。

          git reset my/long/path
          

          而不是

          git reset my/long/path/*
          

          【讨论】:

          • 嘿,这根本行不通!我有很多 java 文件,运行 git log --all -- '*.java' 什么也没产生。找 。 -name '*.java' 输出吨数。
          • Linux 上的 git 1.7.4.4。
          • 那个版本一定是坏了。 1.7.9.3 的构建按描述工作。打败我。
          • 如果你想传递所有的java文件试试: git reset -- \*.java
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-09-19
          • 2022-09-08
          • 2012-04-07
          • 1970-01-01
          • 2017-10-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多