pom.xml、**/pom.xml、**/**/pom.xml、次に**/**/**/pom.xml...名前が何であれ、私たちが知っているターゲットファイルのショートカット何ディレクトリの深さは何ですか?

pom.xml、**/pom.xml、**/**/pom.xml、次に**/**/**/pom.xml...名前が何であれ、私たちが知っているターゲットファイルのショートカット何ディレクトリの深さは何ですか?

すべてのファイルにいくつかの変更を適用するには、pom.xml次のコマンドを実行します。

git checkout --theirs **/**/**/**/pom.xml
git checkout --theirs **/**/**/pom.xml
git checkout --theirs **/**/pom.xml
git checkout --theirs **/pom.xml
git checkout --theirs pom.xml

pom.xmlただし、ディレクトリの深さに関係なく、すべてのファイルの代替ファイルが見つかりません。

単一のコマンドで実行されているタスクをどのように実行できますか?

ベストアンサー1

あなたの要求に応じて可能な答えは2つあります。まだ存在していないファイルまたはディレクトリを一致させるためにシェルワイルドカードを使用することはできません。したがって、gitファイルシステムにすでに存在しない限り、チェックアウトする項目を表示するためにシェルワイルドカードを使用することはできません。幸いなことにgit、この状況ではデフォルトでワイルドカードをサポートしています。

  1. 特に、シェルは拡張しようとせずにそれ自身をgit渡す必要があります。この場合、引用符を使用して文字列をリテラルに渡します。**gitgit

    git checkout '**/pom.xml'
    
  2. gitbashバイナリワイルドカード拡張はシェルの外部でサポートされています。文書(man bash)は次のように書き込みます。

    globstar**設定されている場合、パス名拡張コンテキストで使用されるパターンは、すべてのファイルとゼロ以上のディレクトリとサブディレクトリと一致します。パターンの後に行くと、/ディレクトリとサブディレクトリのみが一致します。

    これは通常デフォルトで有効になっていないオプションなので、bash有効にする必要があります。

    shopt -s globstar
    

    後で、例えば、

    ls **/pom.xml
    

おすすめ記事