Клонирование частного репозитория Github
У меня есть частный репозиторий в Github для проекта, над которым я работаю. До сих пор я работал только на своем домашнем рабочем столе, но я только что купил ноутбук и пытаюсь настроить его, чтобы я мог работать над проектом с любого компьютера, а также с помощью push/pull изменений.
Я добавил новый SSH-ключ к моей учетной записи Github для ноутбука и успешно клонировал и вносил изменения в публичное тестовое репо, которое я создал. Однако я не мог клонировать частное репо. Есть ли что-то особенное в командной строке для клонирования частного репо? Нужно ли мне настроить новую учетную запись GitHub для моего ноутбука и настроить себя как соавтор?
Команда, которую я использовал, была git clone git://github.com/myusername/reponame.git
Ответы
Ответ 1
Частные URL-адреса клонов имеют форму [email protected]:username/repo.git
- возможно, вам нужно использовать [email protected]
, а не git://
?
git://
URL-адреса доступны только для чтения, и похоже, что частные репозитории не разрешают эту форму доступа.
Ответ 2
Это сработало для меня:
git clone https://[email protected]/username/repo_name
Это, конечно, было после добавления моего ключа SSH в Github. Я использовал это на сервере CentOs, если это необходимо.
Ответ 3
Это сработало для меня:
git clone https://username:[email protected]/username/repo_name.git
Ответ 4
Ради Бога, я встречался с этой проблемой несколько раз, и каждый раз, когда я попадал на эту страницу, пробовал все и терпел неудачу!
Это потому что у меня 2FA включен !!!
Согласно https://help.github.com/articles/which-remote-url-should-i-use/#when-2fa-is-enabled
Если вы включилидвухфакторную аутентификацию или обращаетесь к организации, которая используетединый вход SAML, вы должныпредоставить вместо этого личный токен доступа введите пароль для HTTPS Git.
- Перейдите по этой ссылке и создайте токен доступа
- .
git clone https://github.com/username/repo_name.git
(Ссылка на репозиторий git по умолчанию достаточно хороша!)
- Введите свое имя пользователя и используйте токен доступа в качестве пароля !!
Обновление:
- Если вы не против выставить свой токен доступа в командной строке, вы также можете вставить токен доступа в качестве имени пользователя и нажать клавишу ввода enter (пароль не требуется).
- Ненавижу копировать и вставлять маркер доступа снова и снова?
Используйте git config credential.helper store
(не делайте этого на машине, которой вы не доверяете)
Ответ 5
Используя Git для Windows, проще использовать HTTPS-url.
Откройте оболочку Git, затем git clone https://github.com/user/repo
. При появлении запроса введите имя пользователя и пароль. Не нужно настраивать SSH-ключ.
Ответ 6
Для меня решение было:
git clone https://[email protected]
Здесь вы должны быть владельцем репо, но если вы этого не сделаете, он будет выглядеть как
git clone https://[email protected]/ownersusername/repo_name.git
Если у вас есть 2FA enabled
, тогда:
- Перейдите в настройки из значка профиля в правом верхнем углу или посетите https://github.com/settings/profile
- Перейдите на нижнюю вкладку или перейдите на https://github.com/settings/tokens
- Откройте последнюю вкладку здесь Личные токены. И сгенерировать токен
- Скопируйте токен и запустите
git clone https://[email protected]
Когда появится запрос на ввод пароля, введите этот токен здесь.
![Token generation image here]()
Ответ 7
В ответ на ответ mac вы можете получить свой URL-адрес клонирования SSH на своей странице репозитория github, нажав SSH
on You can clone with HTTPS, SSH, or Subversion.
и скопировав URL-адрес.
Ответ 8
У меня есть корпоративная (частная) учетная запись и включена двухфакторная аутентификация, поэтому мне пришлось объединить несколько постов, чтобы она работала, как показано ниже. (Записываю, так что это может быть полезно для кого-то с такой же ситуацией)
Initially it was the Fatal Error.
fatal: repository 'https:
...
remote: Repository not found.
fatal: repository 'https:
Установил диспетчер учетных данных и обновил GIT, как указано здесь: https://codeshare.co.uk/blog/how-to-solve-the-github-error-fatal-httprequestexception-encountered/
Это не решило проблему, поскольку проблема перешла к приведенному ниже, когда я попытался использовать команду clone следующим образом:
$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git
remote: Invalid username or password.
fatal: Authentication failed for 'https://
В моем пароле был символ $, и по какой-то причине в командной строке GIT/GIT Bash это не понравилось. Я вижу это по возвращенному тексту ошибки, в котором не было символа $.
fatal: Authentication failed for 'https://<username>:<password-missing-$-symbol>@github.com/<ORG_NAME>/<PROJECT-NAME>.git'
Я должен был сослаться на этот сайт: https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
Обратите внимание: если неверный пароль для вашей учетной записи сохранен в диспетчере учетных данных Windows, это также усугубит проблему. Я удалил сохраненные таким образом учетные данные github, прежде чем перейти к шагу ниже.
$ git config --global credential.helper cache
$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git
Теперь диспетчер учетных данных Windows появился. Я напечатал свое имя пользователя и пароль в текстовых полях (Это принимало мой пароль с символом $) и предложило мне ввести код 2-факторной аутентификации. Я набрал код аутентификации из Google Authenticator, и клон запустился отлично.
Ответ 9
В дополнение к MK Yung ответьте: убедитесь, что вы добавили открытый ключ для везде, где вы развертываете ключи развертывания для репо, если вы не хотите получать запрещенный запрос 403.
Ответ 10
Сначала убедитесь, что у вас есть ключ SSH или сгенерируйте его:
https://help.github.com/articles/generating-ssh-keys/
Как только у вас есть ключ, вы должны добавить его в свою учетную запись github:
https://github.com/settings/ssh
Для пользователей Windows полезно запустить git bash в качестве администратора.
Теперь клонирование должно работать для частных репозиториев (repo), без необходимости вводить ваше имя пользователя и пароль.
Ответ 11
Это сработало для меня на Mac git clone https://[email protected]:username/repo_name
Ответ 12
Если недавно использованный компьютер имеет другие учетные данные, запустив эту команду
git clone https://github.com/username/reponame.git
напрямую не сработает. Git попытается использовать сохраненные учетные данные и не будет запрашивать у вас имя пользователя и пароль. Так как учетные данные не совпадают, git выведет Repository not found
и операция клона завершится неудачно. Я решил это, удалив старые учетные данные, так как я их больше не использую, и снова выполнил вышеупомянутую команду, ввел требуемое имя пользователя и пароль и клонировал частное хранилище.
Ответ 13
Мне нужен неинтерактивный метод для клонирования частного репо.
Вдохновленный этой проблемой: https://github.com/github/hub/issues/1644
Шаг 1.
Создайте персональный токен доступа в настройках разработчика github:
https://github.com/settings/tokens
Шаг 2.
git clone https://$token:[email protected]/$username/$repo.git
Ответ 14
При клонировании из частных репозиториев с включенным 2FA есть простые шаги, которым нужно следовать
- Перейдите в свой аккаунт Git
- Перейдите на Settings-> Разработчик Settings-> Токен личного доступа
- Нажмите на Создать новый токен
- Создайте токен с нужным названием и функциями
- Когда вы клонируете частное хранилище, с помощью git clone repoName после ввода имени пользователя укажите личный токен доступа в качестве пароля.
Выполните те же шаги, когда вы получаете сообщение об ошибке аутентификации не удалось для частного репо
Ответ 15
Добавьте ваш открытый настольный ssh-ключ в github.
https://github.com/settings/keys
Вы можете клонировать репо без пароля.
Ответ 16
Если вы уверены, что у вас не включен 2FA, у вас есть разрешение на доступ к репо, и репозиторий существует, возможно, ваш [email protected] вошел в систему с другой учетной записью.
чтобы проверить, что вы можете сделать
git -T [email protected]
Если у вас есть другой аккаунт, чтобы решить эту проблему:
ssh-add -D
ssh-add ~/.ssh/your_rsa
ssh -T [email protected]
git clone [email protected]:<owner_name>/<repo_name>.git