Como criar remendo adequado para revisão no cadinho?
git diff branch master --no-prefix > patch
Isso gera apenas 3 linhas de contexto. Então eu faço o seguinte
git diff --unified=2000 branch master --no-prefix > patch
Esperançosamente, todos os arquivos terão menos de 2.000 linhas. Existe uma maneira de dizer ao git para incluir todas as linhas no arquivo para patch sem ter que especificar o máximo de linhas?
Respostas:
Eu sei que isso é antigo, mas também não gosto de soluções codificadas, então testei isto:
Usar -U parece ser a única maneira de abordar o problema, mas usar uma contagem de linha promete que funcionará até mesmo para uma pequena alteração em um arquivo muito grande.
fonte
<
não é necessário.git diff -U$(wc -l MYFILE) MYFILE
git diff -U$(wc -l MYFILE | awk '{print $1}') MYFILE
é uma resposta melhor que analisa corretamente a saída dewc
obtendo apenas o número de linhas sem espaços em branco, não depende da saída não citada de um subshell para criar dois argumentos e funciona no macOS / BSD.Isso parece funcionar muito bem:
Com a ressalva:
fonte
-U
opção que você sugere é a mesma--unified=
usada pelo autor da pergunta. A única diferença é que você especifica menos linhas de contexto, 1000, do que o autor da pergunta, 2000. @balki queria saber como aumentar o número para o infinito, mas você sugere cortar o número pela metade. Por quê?git show
!--no-prefix
opção elimina os prefixos de destino “/ a /” e “/ b /” que aparecem por padrão. (página vinculada)Observação: o anúncio git1.8.1rc1 (8 de dezembro de 2012) inclui:
então isso poderia ajudar, aqui, a gerar um contexto mais completo.
fonte
Tive inspiração e adicionei um apelido git.
Atualizar:
Acabei de encontrar "git df" às vezes não funciona, devido à mudança de diretório ao executar git alias. (Veja git aliases operam no diretório errado ). Portanto, esta é a versão atualizada:
fonte
Isso funcionou para mim no macOS:
consulte "Como cortar espaços em branco de uma variável Bash?"
fonte
Soluções aceitas anteriormente não funcionam para mim ao visualizar um arquivo / confirmação específico (a
-U
opção parece mexer com a análise de rev / caminho), mas--inter-hunk-context=
funciona neste caso emgit version 2.24.0
:Se você não sabe o tamanho do arquivo, é claro que pode encontrá-lo em
wc -l
vez de codificá-lo:fonte