Как получить отладочную информацию о git / git-shell?
У меня была проблема, которая user1
могла клонировать хранилище без проблем, в то время как я user2
мог клонировать только пустой. Я поставил GIT_TRACE=1
, но ничего полезного не было сказано.
Наконец, после долгих проб и ошибок выяснилось, что это проблема с правами доступа к файлу. Соответствующее сообщение об ошибке может привести к короткому замыканию этой проблемы.
GIT_CURL_VERBOSE
, у вас будет Git 2.9.x / 2.10GIT_TRACE_CURL
. Смотрите мой ответ ниже .GIT_TRACE_CURL
), теперь у вас естьtrace2
. Пример:git config --global trace2.normalTarget ~/log.normal
. Смотрите мой (новый) ответ ниже .Ответы:
Для еще более подробного вывода используйте следующее:
GIT_CURL_VERBOSE=1 GIT_TRACE=1 git pull origin master
источник
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
деталь командой, которую хотите выполнить.set GIT_CURL_VERBOSE=1
set GIT_TRACE=1
git pull origin master
Отладка
Git имеет довольно полный набор встроенных трассировок, которые вы можете использовать для отладки ваших проблем с git.
Чтобы включить их, вы можете определить следующие переменные:
GIT_TRACE
для общих следов,GIT_TRACE_PACK_ACCESS
для отслеживания доступа к пакетному файлу,GIT_TRACE_PACKET
для трассировки на уровне пакетов для сетевых операций,GIT_TRACE_PERFORMANCE
для регистрации данных о производительности,GIT_TRACE_SETUP
для получения информации об обнаружении хранилища и среды, с которой он взаимодействует,GIT_MERGE_VERBOSITY
для отладки стратегии рекурсивного слияния (значения: 0-5),GIT_CURL_VERBOSE
для регистрации всех сообщений curl (эквивалентноcurl -v
),GIT_TRACE_SHALLOW
для отладки извлечения / клонирования мелких репозиториев.Возможные значения могут включать:
true
,1
или2
для записи в поток ошибок,/
трассировки вывода до указанного файла.Для более подробной информации смотрите: Git Internals - Переменные среды
SSH
Для проблем SSH, попробуйте следующие команды:
или используйте
ssh
для проверки ваших учетных данных, например,или через порт HTTPS:
Примечание: уменьшить количество,
-v
чтобы уменьшить уровень многословия.Примеры
источник
echo 'ssh -vvv $*' > ssh && chmod +x ssh
кecho 'ssh -vvv "$@"' > ssh && chmod +x ssh
должны быть более безопасными в ребре случае , когда один параметр имеет место в нем.Попробуй это:
источник
Если это по SSH, вы можете использовать следующее:
Для более высокого уровня отладки для типа -vv или -vvv для уровня отладки 2 и 3 соответственно:
Это в основном полезно для решения проблем с открытым и закрытым ключом на сервере. Вы можете использовать эту команду для любой команды git, а не только для «git clone».
источник
set GIT_SSH_COMMAND=ssh -v
(без кавычек).В Git 2.9.x / 2.10 (3-й квартал 2016 года) добавлена еще одна опция отладки:
GIT_TRACE_CURL
.См. Коммит 73e57aa , коммит 74c682d (23 мая 2016 г.) от Elia Pinto (
devzero2000
) . Помогают: Торстен Бёгерсхаузен (
tboegi
) , Рамсей Джонс, Хунио С. Хамано (gitster
) , Эрик Саншайн (sunshineco
) и Джефф Кинг (peff
) .(Слиты Junio C Hamano -
gitster
- в фиксации 2f84df2 , 06 Jul 2016)В документации будет указано:
Вы можете увидеть эту новую опцию, использованную в этом ответе , но также и в тестах Git 2.11 (Q4 2016):
См. Коммит 14e2411 , коммит 81590bf , коммит 4527aa1 , коммит 4eee6c6 (07 сентября 2016 г.) от Elia Pinto (
devzero2000
) .(Слиты Junio C Hamano -
gitster
- в фиксации 930b67e , 12 сент 2016)источник
(ch >= 0x20) && (ch < 0x80)
виде точки.
), и нет возможности шестнадцатеричного вывода для http-данных.Git 2,22 (Q2 2019) вводит
trace2
с фиксации ee4512e на Джеффа Hostetler :Примечание: в отношении имени переменной среды всегда используйте
GIT_TRACExxx
, а неGIT_TRxxx
.Так на самом деле
GIT_TRACE2
,GIT_TRACE2_PERF
илиGIT_TRACE2_EVENT
.См. Переименование Git 2.22, упомянутое ниже.
Далее следует начальная работа над этой новой функцией трассировки со старыми именами переменных среды:
Смотрите коммит a4d3a28 (21 марта 2019 г.) Джоша Стедмона (
steadmon
) .(Слиты Junio C Hamano -
gitster
- в фиксации 1b40314 , 08 мая 2019)Смотрите также совершать f672dee (29 Апр 2019), а также совершать 81567ca , совершает 08881b9 , совершают bad229a , совершает 26c6f25 , совершает bce9db6 , совершает 800a7f9 , совершает a7bc01e , совершает 39f4317 , совершает a089724 , совершает 1703751 (15 апр 2019) по Джеффу Hostetler (
jeffhostetler
) ,(Слиты Junio C Hamano -
gitster
- в фиксации 5b2d1c0 , 13 мая 2019)Новая документация теперь включает в себя параметры конфигурации , которые считываются только из системы и глобальных конфигурационных файлов (означающие хранилища локальных и worktree конфигурационных файлов и
-c
аргументы командной строки , не соблюдаются.)Пример :
доходность
И для измерения производительности :
доходность
Как описано в Git 2.23 (Q3 2019), используемая переменная среды
GIT_TRACE2
.См. Коммит 6114a40 (26 июня 2019 г.) Карло Марсело Аренаса Белона (
carenas
) .См. Коммит 3efa1c6 (12 июня 2019 г.), автор fvar Arnfjörð Bjarmason (
avar
) .(Слиты Junio C Hamano -
gitster
- в фиксации e9eaaa4 , 09 июл 2019)Это следует за работой, проделанной в Git 2.22: коммит 4e0d3aa , коммит e4b75d6 (19 мая 2019 г.) от SZEDER Gábor (
szeder
) .(Слиты Junio C Hamano -
gitster
- в фиксации 463dca6 , 30 мая 2019)Git 2.24 (Q3 2019) улучшает инициализацию репозитория Git.
См. Коммит 22932d9 , коммит 5732f2b , коммит 58ebccb (06 августа 2019 г.) Джеффом Кингом (
peff
) .(Объединено Junio C Hamano -
gitster
- в коммите b4a1eec , 09 сентября 2019 г.)Git 2.24 (Q4 2019) также гарантирует, что вывод из
trace2
подсистемы теперь более отформатирован.См. Коммит 742ed63 , коммит e344305 , коммит c2b890a (09 августа 2019 г.), коммит ad43e37 , коммит 04f10d3 , коммит da4589c (08 авг 2019 г.) и коммит 371df1b (31 июля 2019 г.) Джеффом Хостетлером (
jeffhostetler
) .(Слиты Junio C Hamano -
gitster
- в фиксации 93fc876 , 30 Sep 2019)И еще Git 2.24
См. Коммит 87db61a , коммит 83e57b0 (04 октября 2019 г.) и коммит 2254101 , коммит 3d4548e (03 октября 2019 г.) Джоша Стедмона (
steadmon
) .(Слиты Junio C Hamano -
gitster
- в фиксации d0ce4d9 , 15 октября 2019)А в Git 2.24 (Q4 2019) учат trace2 о
git push
стадиях.Смотрите коммит 25e4b80 , коммит 5fc3118 (02 октября 2019 г.) Джоша Стедмона (
steadmon
) .(Слиты Junio C Hamano -
gitster
- в фиксации 3b9ec27 , 15 окт 2019)В Git 2.25 (Q1 2020) некоторые из
Documentation/technical
них перемещены в заголовочные*.h
файлы.См совершать 6c51cb5 , совершать d95a77d , совершает bbcfa30 , совершает f1ecbe0 , совершают 4c4066d , совершает 7db0305 , совершает f3b9055 , совершает 971b1f2 , совершает 13aa9c8 , совершают c0be43f , совершают 19ef3dd , совершает 301d595 , совершает 3a1b341 , совершает 126c1cc , совершает d27eb35 , совершает 405c6b1 , совершить d3d7172 , совершают 3f1480b , совершают 266f03e , коммит 13c4d7e(17 ноября 2019 г.)Хеба Вали (
HebaWaly
) .(Слиты Junio C Hamano -
gitster
- в фиксации 26c816a , 16 дек 2019)(хотя эта реорганизация имела побочный эффект для другой команды, объяснена и исправлена с помощью Git 2.25.2 (март 2020 г.) в коммите cc4f2eb (14 февраля 2020 г.) Джеффом Кингом (
peff
) .(Объединено с Junio C Hamano -
gitster
- в коммите 1235384 , 17 февраля 2020 г.) )С Git 2.27 (Q2 2020): усовершенствование Trace2, позволяющее регистрировать переменные среды .
Смотрите коммит 3d3adaa (20 марта 2020 г.) Джоша Стедмона (
steadmon
) .(Слиты Junio C Hamano -
gitster
- в фиксации 810dc64 , 22 Apr 2020)С помощью Git 2.27 (Q2 2020) научите кодовые пути, которые показывают индикатор хода выполнения, также использовать
start_progress()
иstop_progress()
вызовы как «region
» для отслеживания.См. Коммит 98a1364 (12 мая 2020 г.) Эмили Шаффер (
nasamuffin
) .(Слиты Junio C Hamano -
gitster
- в фиксации d98abce , 14 мая 2020)И:
С Git 2.27 (Q2 2020), в последнюю минуту исправлено наше недавнее изменение, позволяющее использовать API прогресса в качестве отслеживаемого региона.
См. Коммит 3af029c (15 мая 2020 г.) Деррика Столи (
derrickstolee
) .(Слиты Junio C Hamano -
gitster
- в фиксации 85d6e28 , 20 мая 2020)источник
Вы пытались добавить
-v
оператор verbose ( ) при клонировании?git clone -v git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
источник
Для более старых версий git (1.8 и ранее)
Я не нашел подходящего способа включить отладку SSH в старых версиях git и ssh. Я искал переменные окружения, используя
ltrace -e getenv ...
и не мог найти какую-либо комбинацию переменных GIT_TRACE или SSH_DEBUG, которые будут работать.Вместо этого вот рецепт для временного внедрения 'ssh -v' в последовательность git-> ssh:
Вот вывод из git версии 1.8.3 с ssh-версией OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 февраля 2013 г., клонирование репозитория github:
источник