Skip to main content
  1. Learn center
  2. Software Development
  3. Guides
  4. Git tutorial
  5. Команды и настройки Git
  6. Поиск и устранение неисправностей
GuidesSoftware DevelopmentBacklog
Git

Project and code management together.

Поиск и устранение неисправностей


Ошибка «Permission denied (publickey)» (Отказано в доступе (открытый ключ)) при подключении к удаленному репозиторию с использованием SSH

Прежде всего, вам необходимо убедиться в следующем:

  • Используется правильный URL?
  • Правильно ли настроен секретный ключ на локальном компьютере?
  • Правильно ли настроен открытый ключ на удаленном компьютере?

Вы можете проверить конфигурацию открытого/секретного ключа, соответствующую удаленному репозиторию Backlog, выполнив следующую команду:

$ ssh <space>@<space>.git.backlog.com

Замените <space> принадлежащим вам пространством Backlog (например, для пространства demo.backlog.com это будет demo@demo.git.backlog.com).

Если настройки верны, вы увидите следующие результаты. Если вы видите сообщение об ошибке, повторите описанные выше шаги и убедитесь, что вы все делаете правильно.

Hi yourname! You've successfully authenticated, but Backlog does not provide
  shell access.
  Connection to git.backlog.com closed.

Невозможно клонировать удаленный репозиторий через URL-адрес HTTPS

В старых версиях Git вы можете иногда сталкиваться с проблемами при выполнении команд push или pull. Рекомендуется использовать последнюю версию Git или выше v2. Если вы используете клиент Git, например Source Tree или TortoiseGit, используйте версию Git, поставляемую вместе с соответствующим клиентом.

Меня запрашивают пароль каждый раз, когда я отправляю/извлекаю из удаленного репозитория

Вы можете избежать многократного ввода пароля, выполнив следующие настройки.

Windows

Вы можете использовать git-credential-winstore, который будет запрашивать ваш пароль только при первом выполнении команд push/pull.

Mac

Вы можете использовать Sourcetree (о котором мы говорили в предыдущей главе) для связи с Mac Keychain. Это позволит Git выяснить, какие учетные данные использовать каждый раз, когда вы получаете или передаете данные.

Console

На Mac можно использовать API учетных данных Git, чтобы связать имя пользователя и пароль с операциями Git. Если вы используете Homebrew, API учетных данных Git устанавливается автоматически. В противном случае вам придется установить его вручную.

Вы можете проверить, установлен ли API учетных данных, с помощью команды ниже.

$ git credential-osxkeychain
  Usage: git credential-osxkeychain <get|store|erase>

Если API учетных данных не установлен, вы увидите результат, показанный ниже.

$ git credential-osxkeychain
  git: 'credential-osxkeychain' is not a git command. See 'git --help'.

В этом случае вы можете скачать его и переместить файлы в /usr/local/bin.

$ curl -s -O http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain
$ chmod u+x git-credential-osxkeychain
$ mv git-credential-osxkeychain /usr/local/bin

После завершения установки выполните следующую команду ниже, чтобы активировать API учетных данных.

git config --global credential.helper osxkeychain

Изменения, отправленные в удаленный репозиторий, там не отражаются

При выполнении push-уведомлений вы можете встретить следующее сообщение ниже. Обычно это происходит, когда вы отправляете данные из нового локального репозитория.

$ git push
  No refs in common and none specified; doing nothing.
  Perhaps you should specify a branch such as 'main'.
  Everything up-to-date

При пропуске имени ветки при выполнении передачи Git по умолчанию предполагает, что вы пытаетесь отправить текущее изменение в удаленную ветку с тем же именем, что и локальная ветка. Это происходит, если в удаленном репозитории еще не создана основная ветка. (Мы отправляем данные из местной основной ветки.) В этом случае нам придется явно использовать имя ветки при выполнении передачи.

$ git push -u origin main

При выполнении этой команды основная ветка будет создана в удаленном репозитории автоматически. В следующий раз, когда вы будете выполнять команду push, вы можете опустить имя ветки.

Subscribe to our newsletter

Learn with Nulab to bring your best ideas to life