Como posso obter algumas informações de depuração relacionadas ao git / git-shell?
Eu tive um problema, que user1
poderia clonar um repositório sem problemas, enquanto user2
poderia clonar apenas um repositório vazio. Eu havia definido GIT_TRACE=1
, mas nada de útil foi dito.
Finalmente, após uma longa tentativa e erro, verificou-se que era um problema de permissão em um arquivo. Uma mensagem de erro apropriada pode causar um curto-circuito neste problema.
GIT_CURL_VERBOSE
, você terá com o Git 2.9.x / 2.10GIT_TRACE_CURL
. Veja minha resposta abaixo .GIT_TRACE_CURL
), você já temtrace2
. Exemplo:git config --global trace2.normalTarget ~/log.normal
. Veja minha (nova) resposta abaixo .Respostas:
Para uma saída ainda mais detalhada, use o seguinte:
GIT_CURL_VERBOSE=1 GIT_TRACE=1 git pull origin master
fonte
set -x; GIT_TRACE=2 GIT_CURL_VERBOSE=2 GIT_TRACE_PERFORMANCE=2 GIT_TRACE_PACK_ACCESS=2 GIT_TRACE_PACKET=2 GIT_TRACE_PACKFILE=2 GIT_TRACE_SETUP=2 GIT_TRACE_SHALLOW=2 git pull origin master -v -v; set +x
git pull origin master
peça pelo comando que deseja executar.set GIT_CURL_VERBOSE=1
set GIT_TRACE=1
git pull origin master
Depuração
O Git possui um conjunto bastante completo de rastreamentos incorporados, que você pode usar para depurar seus problemas do git.
Para ativá-los, você pode definir as seguintes variáveis:
GIT_TRACE
para traços gerais,GIT_TRACE_PACK_ACCESS
para rastreamento de acesso ao packfile,GIT_TRACE_PACKET
para rastreamento em nível de pacote para operações de rede,GIT_TRACE_PERFORMANCE
para registrar os dados de desempenho,GIT_TRACE_SETUP
para obter informações sobre como descobrir o repositório e o ambiente com os quais ele está interagindo,GIT_MERGE_VERBOSITY
para depurar estratégia de mesclagem recursiva (valores: 0-5),GIT_CURL_VERBOSE
para registrar todas as mensagens de ondulação (equivalentes acurl -v
),GIT_TRACE_SHALLOW
para depuração de busca / clonagem de repositórios rasos.Os valores possíveis podem incluir:
true
,1
ou2
para escrever para stderr,/
para rastrear a saída para o arquivo especificado.Para obter mais detalhes, consulte: Git Internals - Environment Variables
SSH
Para problemas de SSH, tente os seguintes comandos:
ou use
ssh
para validar suas credenciais, por exemploou pela porta HTTPS:
Nota: Reduza o número de
-v
para reduzir o nível de verbosidade.Exemplos
fonte
echo 'ssh -vvv $*' > ssh && chmod +x ssh
paraecho 'ssh -vvv "$@"' > ssh && chmod +x ssh
deve ser mais seguro no caso de borda em que um único parâmetro tem um espaço nele.tente este:
fonte
Se for sobre SSH, você pode usar o seguinte:
Para um nível de depuração mais alto para o tipo -vv ou -vvv para o nível de depuração 2 e 3, respectivamente:
Isso é útil principalmente para lidar com problemas de chave pública e privada com o servidor. Você pode usar este comando para qualquer comando git, não apenas para 'git clone'.
fonte
set GIT_SSH_COMMAND=ssh -v
(sem aspas).O Git 2.9.x / 2.10 (terceiro trimestre de 2016) adiciona outra opção de depuração:
GIT_TRACE_CURL
.Veja commit 73e57aa , commit 74c682d (23 de maio de 2016) por Elia Pinto (
devzero2000
) .Ajudado por: Torsten Bögershausen (
tboegi
) , Ramsay Jones, Junio C Hamano (gitster
) , Eric Sunshine (sunshineco
) e Jeff King (peff
) .(Mesclado por Junio C Hamano -
gitster
- no commit 2f84df2 , 06 de julho de 2016)A documentação indicará:
Você pode ver a nova opção usada nesta resposta , mas também nos testes do Git 2.11 (quarto trimestre de 2016):
Consulte commit 14e2411 , commit 81590bf , commit 4527aa1 , commit 4eee6c6 (07 set 2016) por Elia Pinto (
devzero2000
) .(Mesclado por Junio C Hamano -
gitster
- na confirmação 930b67e , 12 de setembro de 2016)fonte
(ch >= 0x20) && (ch < 0x80)
como ponto.
) e nenhuma maneira de saída hexadecimal para dados http.O Git 2.22 (Q2 2019) é apresentado
trace2
com o commit ee4512e de Jeff Hostetler :Nota: em relação ao nome da variável de ambiente, use sempre
GIT_TRACExxx
, nãoGIT_TRxxx
.Então
GIT_TRACE2
, na verdade ,GIT_TRACE2_PERF
ouGIT_TRACE2_EVENT
.Veja a renomeação do Git 2.22 mencionada posteriormente abaixo.
A seguir, é apresentado o trabalho inicial desse novo recurso de rastreamento, com o nomes de variáveis de ambiente antigos :
Veja commit a4d3a28 (21 Mar 2019) por Josh Steadmon (
steadmon
) .(Mesclado por Junio C Hamano -
gitster
- no commit 1b40314 , 08 de maio de 2019)Consulte também commit f672dee (29 abr 2019) e commit 81567ca , commit 08881b9 , commit bad229a , commit 26c6f25 , commit bce9db6 , commit 800a7f9 , commit a7bc01e , commit 39f4317 , commit a089724 , commit 1703751 (15 abr 2019) por Jeff Hostetler (
jeffhostetler
) .(Incorporado por Junio C Hamano -
gitster
- in commit 5b2d1c0 , 13 de maio de 2019)A nova documentação agora inclui definições de configuração que são lidas apenas a partir do sistema e dos arquivos de configuração globais (o que significa que os arquivos de configuração locais e da árvore de trabalho do repositório e os
-c
argumentos da linha de comando não são respeitados.)Exemplo :
rendimentos
E para medir o desempenho :
rendimentos
Conforme documentado no Git 2.23 (terceiro trimestre de 2019), a variável de ambiente a ser usada é
GIT_TRACE2
.Veja commit 6114a40 (26 jun 2019) de Carlo Marcelo Arenas Belón (
carenas
) .Veja commit 3efa1c6 (12 Jun 2019) por Ævar Arnfjörð Bjarmason (
avar
) .(Mesclado por Junio C Hamano -
gitster
- in commit e9eaaa4 , 09 jul 2019)Isso segue o trabalho realizado no Git 2.22: commit 4e0d3aa , commit e4b75d6 (19 de maio de 2019) por SZEDER Gábor (
szeder
) .(Incorporado por Junio C Hamano -
gitster
- in commit 463dca6 , 30 de maio de 2019)O Git 2.24 (terceiro trimestre de 2019) melhora a inicialização do repositório Git.
Consulte commit 22932d9 , commit 5732f2b , commit 58ebccb (06 ago 2019) por Jeff King (
peff
) .(Mesclado por Junio C Hamano -
gitster
- in commit b4a1eec , 09 set 2019)O Git 2.24 (quarto trimestre de 2019) também garante que a saída do
trace2
subsistema seja formatada com mais beleza agora.Consulte commit 742ed63 , commit e344305 , commit c2b890a (09 de agosto de 2019), commit ad43e37 , commit 04f10d3 , commit da4589c (08 ago 2019) e commit 371df1b (31 jul 2019) por Jeff Hostetler (
jeffhostetler
) .(Incorporado por Junio C Hamano -
gitster
- in commit 93fc876 , 30 set 2019)E, ainda Git 2.24
Consulte commit 87db61a , commit 83e57b0 (04 out 2019) e commit 2254101 , commit 3d4548e (03 out 2019) por Josh Steadmon (
steadmon
) .(Incorporado por Junio C Hamano -
gitster
- in commit d0ce4d9 , 15 out 2019)E o Git 2.24 (quarto trimestre de 2019) ensina o trace2 sobre os
git push
estágios.Veja commit 25e4b80 , commit 5fc3118 (02 out 2019) por Josh Steadmon (
steadmon
) .(Incorporado por Junio C Hamano -
gitster
- in commit 3b9ec27 , 15 out 2019)Com o Git 2.25 (primeiro trimestre de 2020), alguns
Documentation/technical
deles são movidos para os*.h
arquivos de cabeçalho .Veja cometer 6c51cb5 , cometer d95a77d , cometer bbcfa30 , cometer f1ecbe0 , cometer 4c4066d , cometer 7db0305 , cometer f3b9055 , cometer 971b1f2 , cometer 13aa9c8 , cometer c0be43f , cometer 19ef3dd , cometer 301d595 , cometer 3a1b341 , cometer 126c1cc , cometer d27eb35 , cometer 405c6b1 , cometer d3d7172 , commit 3f1480b , commit 266f03e , confirmar 13c4d7e(17 Nov 2019) porHeba Waly (
HebaWaly
) .(Incorporado por Junio C Hamano -
gitster
- in commit 26c816a , 16 dez 2019)(embora essa reorganização tenha tido um efeito colateral em outro comando, explicado e corrigido no Git 2.25.2 (março de 2020) no commit cc4f2eb (14 de fevereiro de 2020) por Jeff King (
peff
) .(Mesclado por Junio C Hamano -
gitster
- no commit 1235384 , 17 de fevereiro de 2020) )Com Git 2.27 (Q2 2020): aprimoramento do Trace2 para permitir o registro de variáveis de ambiente .
Veja commit 3d3adaa (20 de março de 2020) de Josh Steadmon (
steadmon
) .(Mesclado por Junio C Hamano -
gitster
- no commit 810dc64 , 22 de abril de 2020)Com o Git 2.27 (Q2 2020), ensine caminhos de código que mostram o medidor de progresso a também usar
start_progress()
asstop_progress()
chamadas e como um "region
" a ser rastreado.Veja commit 98a1364 (12 de maio de 2020) de Emily Shaffer (
nasamuffin
) .(Incorporado por Junio C Hamano -
gitster
- in commit d98abce , 14 de maio de 2020)E:
Com o Git 2.27 (Q2 2020), correção de última hora para nossas alterações recentes para permitir o uso da API de progresso como uma região rastreável.
Veja commit 3af029c (15 de maio de 2020) por Derrick Stolee (
derrickstolee
) .(Mesclado por Junio C Hamano -
gitster
- na confirmação 85d6e28 , 20 de maio de 2020)fonte
Você tentou adicionar o
-v
operador verbose ( ) ao clonar?git clone -v git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
fonte
Para versões mais antigas do git (1.8 e anterior)
Não consegui encontrar uma maneira adequada de habilitar a depuração SSH nas versões git e ssh mais antigas. Procurei variáveis de ambiente usando
ltrace -e getenv ...
Procurei variáveis e não consegui encontrar nenhuma combinação de variáveis GIT_TRACE ou SSH_DEBUG que funcionassem.Em vez disso, aqui está uma receita para injetar temporariamente 'ssh -v' na sequência git-> ssh:
Aqui está a saída do git versão 1.8.3 com a versão ssh OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 de fevereiro de 2013 clonando um repositório do github:
fonte