Tenho o seguinte comando:
git diff branch1..branch2 | grep '^diff'
...que produzirá arquivos que contêm diferenças entre dois branches. A saída de exemplo é assim:
diff --git a/path-to-file1/file1.php b/path-to-file1/file1.php
diff --git a/path-to-file2/file2.php b/path-to-file2/file2.php
diff --git a/path-to-file3/file3.php b/path-to-file3/file3.php
Como eu altero esse comando para obter apenas o caminho do arquivo? Eu quero filtrar o "diff --git a/" e "b/path-to-file1/file1.php". Então, eu quero que a saída final fique assim:
path-to-file1/file1.php
path-to-file2/file2.php
path-to-file3/file3.php
Suponha que ambos os branches tenham a mesma estrutura de diretório. Então, pegue os caminhos "a/" ou "b/".
Essa é uma maneira muito retrógrada de obter arquivos com diferenças. Há a
--name-only
opção paragit diff
, que já faz isso, de forma robusta.Como eu descobri? Eu tive um problema parecido com o seu quando eu era novo em
git
, então eu ligit help diff
.