Bagaimana saya dapat memiliki beberapa informasi debug mengenai git / git-shell?
Saya punya masalah, yang user1
bisa mengkloning repositori tanpa masalah, sementara user2
hanya bisa mengkloning yang kosong. Saya telah menetapkan GIT_TRACE=1
, tetapi tidak ada yang berguna yang diberitahukan.
Akhirnya, setelah coba-coba yang lama, ternyata itu masalah izin pada file. Pesan kesalahan yang sesuai dapat menyebabkan hubungan pendek masalah ini.
GIT_CURL_VERBOSE
, Anda harus menggunakan Git 2.9.x / 2.10GIT_TRACE_CURL
. Lihat jawaban saya di bawah ini .GIT_TRACE_CURL
), sekarang Anda milikitrace2
. Contoh:git config --global trace2.normalTarget ~/log.normal
. Lihat jawaban (baru) saya di bawah ini .Jawaban:
Untuk penggunaan keluaran verbose yang lebih banyak, berikut ini:
GIT_CURL_VERBOSE=1 GIT_TRACE=1 git pull origin master
sumber
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
bagian dengan perintah yang ingin Anda jalankan.set GIT_CURL_VERBOSE=1
set GIT_TRACE=1
git pull origin master
Debugging
Git memiliki seperangkat jejak yang cukup lengkap yang dapat Anda gunakan untuk debug masalah git Anda.
Untuk mengaktifkannya, Anda dapat menentukan variabel berikut:
GIT_TRACE
untuk jejak umum,GIT_TRACE_PACK_ACCESS
untuk melacak akses packfile,GIT_TRACE_PACKET
untuk penelusuran tingkat paket untuk operasi jaringan,GIT_TRACE_PERFORMANCE
untuk mencatat data kinerja,GIT_TRACE_SETUP
untuk informasi tentang menemukan repositori dan lingkungan yang berinteraksi dengannya,GIT_MERGE_VERBOSITY
untuk debugging strategi gabungan rekursif (nilai: 0-5),GIT_CURL_VERBOSE
untuk mencatat semua pesan curl (setara dengancurl -v
),GIT_TRACE_SHALLOW
untuk debugging fetching / cloning dari repositori dangkal.Nilai yang mungkin termasuk:
true
,1
atau2
untuk menulis ke stderr,/
untuk melacak output ke file yang ditentukan.Untuk detail lebih lanjut, lihat: Git Internal - Variabel Lingkungan
SSH
Untuk masalah SSH, coba perintah berikut:
atau gunakan
ssh
untuk memvalidasi kredensial Anda, misatau lebih dari port HTTPS:
Catatan: Kurangi jumlah
-v
untuk mengurangi tingkat verbositas.Contohnya
sumber
echo 'ssh -vvv $*' > ssh && chmod +x ssh
keecho 'ssh -vvv "$@"' > ssh && chmod +x ssh
harus lebih aman dalam kasus tepi di mana parameter tunggal memiliki ruang di dalamnya.coba yang ini:
sumber
Jika lebih dari SSH, Anda dapat menggunakan yang berikut ini:
Untuk level debug yang lebih tinggi untuk tipe -vv atau -vvv untuk level debug 2 dan 3 masing-masing:
Ini terutama berguna untuk menangani masalah kunci publik dan pribadi dengan server. Anda dapat menggunakan perintah ini untuk perintah git apa pun, tidak hanya 'git clone'.
sumber
set GIT_SSH_COMMAND=ssh -v
(tidak ada tanda kutip).Git 2.9.x / 2.10 (Q3 2016) menambahkan pilihan debug lain:
GIT_TRACE_CURL
.Lihat komit 73e57aa , komit 74c682d (23 Mei 2016) oleh Elia Pinto (
devzero2000
) .Dibantu-oleh: Torsten Bögershausen (
tboegi
) , Ramsay Jones, Junio C Hamano (gitster
) , Eric Sunshine (sunshineco
) , dan Jeff King (peff
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit 2f84df2 , 06 Jul 2016)Dokumentasi akan menyatakan:
Anda dapat melihat opsi baru yang digunakan dalam jawaban ini , tetapi juga dalam tes Git 2.11 (Q4 2016):
Lihat komit 14e2411 , komit 81590bf , komit 4527aa1 , komit 4eee6c6 (07 Sep 2016) oleh Elia Pinto (
devzero2000
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit 930b67e , 12 Sep 2016)sumber
(ch >= 0x20) && (ch < 0x80)
sebagai titik.
) dan tidak ada cara output hex untuk data http.Git 2.22 (Q2 2019) memperkenalkan
trace2
dengan commit ee4512e oleh Jeff Hostetler :Catatan: tentang nama variabel lingkungan, selalu gunakan
GIT_TRACExxx
, bukanGIT_TRxxx
.Jadi sebenarnya
GIT_TRACE2
,GIT_TRACE2_PERF
atauGIT_TRACE2_EVENT
.Lihat ganti nama Git 2.22 yang disebutkan kemudian di bawah ini.
Berikut ini adalah pekerjaan awal pada fitur penelusuran baru ini, dengan nama variabel lingkungan lama :
Lihat commit a4d3a28 (21 Mar 2019) oleh Josh Steadmon (
steadmon
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit 1b40314 , 08 Mei 2019)Lihat juga komit f672dee (29 Apr 2019), dan komit 81567ca , komit 08881b9 , komit bad229a , komit 26c6f25 , komi bce9db6 , komit 800a7f9 , koma a7bc01e , komit 39f4317 , koma089724 , komi 1703751 ( komi 158 ) oleh Jeff Host
jeffhostetler
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit 5b2d1c0 , 13 Mei 2019)The dokumentasi baru sekarang termasuk pengaturan konfigurasi yang hanya membaca dari sistem dan file konfigurasi global yang (berarti repositori file konfigurasi lokal dan worktree dan
-c
argumen baris perintah tidak dihormati.)Contoh :
hasil panen
Dan untuk ukuran kinerja :
hasil panen
Seperti yang didokumentasikan dalam Git 2.23 (Q3 2019), variabel lingkungan yang digunakan adalah
GIT_TRACE2
.Lihat komit 6114a40 (26 Jun 2019) oleh Carlo Marcelo Arenas Belón (
carenas
) .Lihat komit 3efa1c6 (12 Jun 2019) oleh Ævar Arnfjörð Bjarmason (
avar
) .(Digabung oleh Junio C Hamano -
gitster
- di commit e9eaaa4 , 09 Jul 2019)Itu mengikuti pekerjaan yang dilakukan di Git 2.22: commit 4e0d3aa , commit e4b75d6 (19 Mei 2019) oleh SZEDER Gábor (
szeder
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit 463dca6 , 30 Mei 2019)Git 2.24 (Q3 2019) meningkatkan inisialisasi repositori Git.
Lihat komit 22932d9 , komit 5732f2b , komit 58ebccb (06 Agt 2019) oleh Jeff King (
peff
) .(Digabung oleh Junio C Hamano -
gitster
- di commit b4a1eec , 09 Sep 2019)Git 2.24 (Q4 2019) memastikan juga bahwa output dari
trace2
subsistem diformat lebih baik sekarang.Lihat komit 742ed63 , komit e344305 , komit c2b890a (09 Agustus 2019), komit ad43e37 , komit 04f10d3 , komit da4589c (08 agustus 2019), dan komit 371df1b (31 Jul 2019) oleh Jeff Hostetler (
jeffhostetler
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit 93fc876 , 30 Sep 2019)Dan, masih Git 2.24
Lihat komit 87db61a , komit 83e57b0 (04 Okt 2019), dan komit 2254101 , komit 3d4548e (03 Okt 2019) oleh Josh Steadmon (
steadmon
) .(Digabung oleh Junio C Hamano -
gitster
- di commit d0ce4d9 , 15 Okt 2019)Dan Git 2.24 (Q4 2019) mengajarkan trace2 tentang
git push
tahapan.Lihat komit 25e4b80 , komit 5fc3118 (02 Okt 2019) oleh Josh Steadmon (
steadmon
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit 3b9ec27 , 15 Okt 2019)Dengan Git 2.25 (Q1 2020), beberapa di antaranya
Documentation/technical
dipindahkan ke*.h
file header .Lihat komit 6c51cb5 , komit d95a77d , komit bbcfa30 , komit f1ecbe0 , komit 4c4066d , komit 7db0305 , komit f3b9055 , komit 971b1f2 , komit 13aa9c8 , komit c0be43f , komit 19ef3dd , komit 301d595 , komit 3a1b341 , komit 126c1cc , komit d27eb35 , komit 405c6b1 , komit d3d7172 , komit 3f1480b , komit 266f03e , komit 13c4d7e(17 Nov 2019) olehHeba Waly (
HebaWaly
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit 26c816a , 16 Des 2019)(walaupun reorganisasi itu memiliki efek samping pada perintah lain, dijelaskan dan diperbaiki dengan Git 2.25.2 (Maret 2020) dalam komit cc4f2eb (14 Feb 2020) oleh Jeff King (
peff
) .(Digabung oleh Junio C Hamano -
gitster
- in commit 1235384 , 17 Feb 2020) )Dengan Git 2.27 (Q2 2020): Trace2 enhancement untuk memungkinkan logging variabel lingkungan .
Lihat commit 3d3adaa (20 Mar 2020) oleh Josh Steadmon (
steadmon
) .(Digabung oleh Junio C Hamano -
gitster
- dalam commit 810dc64 , 22 Apr 2020)Dengan Git 2.27 (Q2 2020), ajarkan codepath yang menunjukkan meteran untuk juga menggunakan
start_progress()
danstop_progress()
panggilan sebagai "region
" yang akan dilacak.Lihat komit 98a1364 (12 Mei 2020) oleh Emily Shaffer (
nasamuffin
) .(Digabung oleh Junio C Hamano -
gitster
- dalam commit d98abce , 14 Mei 2020)Dan:
Dengan Git 2.27 (Q2 2020), perbaikan menit terakhir untuk perubahan terbaru kami untuk memungkinkan penggunaan API kemajuan sebagai wilayah yang dapat dilacak.
Lihat komit 3af029c (15 Mei 2020) oleh Derrick Stolee (
derrickstolee
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit 85d6e28 , 20 Mei 2020)sumber
Sudahkah Anda mencoba menambahkan
-v
operator verbose ( ) ketika Anda mengkloning?git clone -v git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
sumber
Untuk versi git yang lebih lama (1,8 dan sebelumnya)
Saya tidak menemukan cara yang cocok untuk mengaktifkan debugging SSH di versi git dan ssh yang lebih lama. Saya mencari variabel lingkungan menggunakan
ltrace -e getenv ...
dan tidak dapat menemukan kombinasi variabel GIT_TRACE atau SSH_DEBUG yang akan berfungsi.Alih-alih, inilah resep untuk menyuntikkan 'ssh -v' sementara ke dalam git-> ssh:
Inilah output dari git versi 1.8.3 dengan ssh versi OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013 mengkloning repo github:
sumber