Para aplicar algumas alterações em todos os meus pom.xml
arquivos, estou executando estes comandos:
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
Mas não consigo encontrar a substituição que teria como alvo todos os pom.xml
arquivos, em qualquer nível de profundidade de diretórios.
Como posso fazer o que eu fiz em um único comando?
Existem duas respostas possíveis aqui, dependendo da sua necessidade. Você não pode usar um curinga de shell para corresponder a um arquivo ou diretório que ainda não existe, portanto, não pode usar curingas de shell para instruir
git
sobre quais itens fazer check-out, a menos que já estejam presentes em seu sistema de arquivos. Felizmentegit
, ele suporta curingas exatamente para essa situação.Especificamente para
git
, você precisa passar o**
paragit
si mesmo sem que o shell tente expandi-lo. Nesta situação, use aspas para passar a string como literal paragit
:Fora do
git
shellbash
também suporta expansão de curinga de estrela dupla. A documentação (man bash
) escreve,É uma opção
bash
que geralmente não está habilitada por padrão, então você precisa habilitá-la:Exemplo depois,