К обсуждениям

GitHub Desktop добавляет домашнюю папку вместо репозитория: проверяем корень Git

Редакция VOne Технологии

Что проверить, если Add local repository выбирает каталог пользователя вместо вложенного проекта: граница выбранного пути, корня Git и интерфейса без перемещения или удаления файлов.

Определите корень средствами Git

Git предоставляет команду rev-parse с параметром show-toplevel, которая печатает абсолютный путь верхнего уровня рабочей копии. Запустите её из выбранной вложенной папки и сохраните только последние два нейтральных сегмента пути. Если команда сообщает, что каталог не является репозиторием, сначала проверьте наличие .git в ожидаемом месте, не создавая новый репозиторий. Если top-level совпадает с домашней папкой, GitHub Desktop может корректно следовать уже существующему внешнему корню; это другой случай. Если Git возвращает вложенный проект, а интерфейс показывает родителя, зафиксировано расхождение двух слоёв. Не изменяйте .git и не перемещайте проект.

Сравните Choose и перетаскивание папки

GitHub Docs описывает два штатных способа: File > Add local repository с выбором каталога и перетаскивание Git-папки в окно Desktop. Используйте одну и ту же тестовую копию небольшого репозитория без remote и секретов. Сначала запишите путь в диалоге Choose, отмените добавление, затем перетащите ту же папку и снова проверьте предлагаемое имя и путь. Не создавайте второй .git и не публикуйте репозиторий. Если оба способа выбирают родителя, результат воспроизводим на уровне распознавания пути. Если один работает, сохраните его как временный контроль, но не переносите рабочую копию до проверки пользовательских изменений.

Красный флаг — изменения всей домашней папки

Если после добавления Desktop показывает сотни несвязанных файлов из каталога пользователя, не нажимайте Commit, Discard или Publish repository. Закройте представление и зафиксируйте только количество неожиданных верхнеуровневых каталогов. Команда массового discard может затронуть пользовательские данные, а публикация — раскрыть файлы. Не используйте очистку Git и не удаляйте неизвестный .git в домашней папке без отдельного расследования. Критерий остановки — любое предложение изменить историю, индекс или файлы за пределами выбранного проекта. Для диагностики достаточно расхождения top-level и пути интерфейса на нейтральной тестовой копии.

Отчёт needs-triage с редактированным путём

Укажите версию GitHub Desktop, Windows, результат show-toplevel, путь из диалога и разницу между Choose и drag-and-drop. Замените имя пользователя на USER и название проекта на PROJECT, сохранив глубину вложенности. Не прикладывайте production.log целиком: он может содержать пути и remote URL. Issue остаётся needs-triage, поэтому не утверждайте регрессию без сравнения версий. Эскалация полезна, если чистый вложенный репозиторий без внешнего .git стабильно определяется Git правильно, но оба штатных способа Desktop выбирают родительский каталог. Отдельно сообщайте существующий .git в домашней папке — это уже другая конфигурация.

Материал подготовлен редакцией VOne с применением ИИ для preflight; факты вручную проверены по GitHub Docs и документации Git, а issue использован лишь как обезличенный сигнал.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.