すべてのファイルにいくつかの変更を適用するには、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
、この状況ではデフォルトでワイルドカードをサポートしています。
特に、シェルは拡張しようとせずにそれ自身を
git
渡す必要があります。この場合、引用符を使用して文字列をリテラルに渡します。**
git
git
git checkout '**/pom.xml'
git
bash
バイナリワイルドカード拡張はシェルの外部でサポートされています。文書(man bash
)は次のように書き込みます。globstar
**
設定されている場合、パス名拡張コンテキストで使用されるパターンは、すべてのファイルとゼロ以上のディレクトリとサブディレクトリと一致します。パターンの後に行くと、/
ディレクトリとサブディレクトリのみが一致します。これは通常デフォルトで有効になっていないオプションなので、
bash
有効にする必要があります。shopt -s globstar
後で、例えば、
ls **/pom.xml