Как клонировать закрытый репозиторий github
Клонирование частного репозитория Github
У меня есть личное хранилище на Github для проекта, над которым я работаю. До сих пор я работал только на своем домашнем компьютере, но я только что купил ноутбук и пытаюсь настроить его так, чтобы я мог работать над проектом с любого компьютера и вносить изменения.
Я добавил новый SSH-ключ в свою учетную запись Github для ноутбука и успешно клонировал и вносил изменения в публичное тестовое репо, которое я настроил. Однако я не мог клонировать частное репо. Есть ли что-то особенное, что мне нужно сделать в командной строке, чтобы клонировать закрытое хранилище? Нужно ли мне настраивать новую учетную запись GitHub для моего ноутбука и настраивать себя в качестве соавтора?
Я использовал команду git clone git://github.com/myusername/reponame.git
10 ответов
git:// URL-адреса доступны только для чтения, и, похоже, частные репозитории не допускают такую форму доступа.
Это сработало для меня:
git clone https://[email protected]/username/repo_name
Это сработало для меня:
Используя Git для Windows, проще использовать HTTPS url.
Ради Бога, я встречался с этой проблемой несколько раз, и каждый раз, когда я попадал на эту страницу, пробовал все и терпел неудачу!
Если вы не против выставить свой токен доступа в командной строке, вы также можете вставить токен доступа в качестве имени пользователя и нажать клавишу ввода enter (пароль не требуется).
Сначала убедитесь, что у вас есть ключ SSH, или сгенерируйте его по адресу: https://help.github.com/articles/generating-ssh-keys/
Получив ключ, вы должны добавить его в свою учетную запись на github по адресу: https://github.com/settings/ssh
Для пользователей Windows полезно запускать git bash от имени администратора.
Теперь клонирование должно работать для частных репозиториев (репо), без необходимости ввода имени пользователя и пароля.
Для меня решение было:
Здесь одна вещь, которая отличается от ответа @charlchad, заключается в том, что
Здесь вы должны быть владельцем репо, но если вы этого не сделаете, то он будет выглядеть как
Это сработало для меня на Mac git clone https://[email protected]:username/repo_name
Добавьте открытый ключ ssh вашего рабочего стола в github.
Вы можете клонировать репо без пароля.
У меня есть корпоративная (частная) учетная запись и включена двухфакторная аутентификация, поэтому мне пришлось объединить несколько сообщений, чтобы она работала, как показано ниже. (Записываю, так что это может быть полезно для кого-то с такой же ситуацией)
Это не решило проблему, поскольку проблема перешла к приведенному ниже, когда я попытался использовать команду clone следующим образом:
Обратите внимание: если для вашей учетной записи в Диспетчер учетных данных Windows также будет добавлен в эта проблема. я удалили сохраненные таким образом учетные данные github перед переходом к шагу ниже.
Git для начинающих. Урок 2.
Создание и клонирование репозитория
Видеоурок. Часть 1. Практика
Все о репозиториях
Видеоурок. Часть 2
Конспект урока
Краткое содержание урока, основные инструкции для командной строки, полезные ссылки и советы.
Что такое репозиторий
Это каталог в файловой системе, где хранится информация о проекте:
Можно ли работать с git локально
Да, можно. Но при этом проект находится только на нашей машине и в случае поломки железа или случайной потери данных мы не сможем восстановить проект.
Локальный репозиторий
Удаленный репозиторий, зачем он нужен
Это репозиторий, который хранится в облаке, на сторонних сервисах, специально созданных под работу с проектами git.
Плюсы удаленного репозитория
Что такое клонирование
Это копирование удаленного репозитория на локальную машину. Обычно это первое действие при работе с проектом. При клонировании на нашу машину копируются файлы и папки проекта и вся его история. То есть мы получаем доступ к истории не с момента начала нашей работы над проектом, а с самого начала проекта.
Как клонировать готовый проект
Наберем в командной строке
Как клонировать проект в другую папку
При клонировании по умолчанию создается папка с таким же названием, как и у репозитория. Но можно склонировать репозиторий и в другую папку вот так
Свой удаленный репозиторий
Для своих проектов нам понадобится собственный репозиторий. Можно работать и локально, но плюсы удаленного мы уже рассматривали выше. Теперь нужно выбрать хостинг для наших git-проектов.
Где держать репозиторий
На самом деле не парьтесь. У них схожий функционал, и в начале работы с git мы не заметим разницы. bitbucket мне нравится больше из-за интерфейса, но в уроках выберем github из-за его большей популярности.
Как создать репозиторий в github
После регистрации создание репозитория доступно с главной страницы github. При создании нужно указать название проекта и тип (публичный или приватный). На остальное пока не обращаем внимания.
Права на репозиторий, публичные и приватные
Есть 2 типа репозиториев:
Публичные репозитории хороши для opensource-проектов и чтобы показать в резюме. Пока нам это не нужно.
Для себя будем создавать приватные репозитории. Для этого нам понадобятся ssh-ключи.
Что такое ssh-ключи
ssh-ключи используются для идентификации клиента на сервере при подключении по безопасному ssh-протоколу. Другими словами, ssh-ключ нужен для того, чтобы пускать на сервер только определенных клиентов. Только тех, кому разрешен доступ к проекту.
ssh-ключ не имеет прямого отношения к git, но так репозитории находятся на удаленных серверах, то ssh-ключи используются для разграничения доступа к приватным репозиториям.
ssh-ключ состоит из пары ключей: публичного и приватного ключа. Это просто 2 текстовых файла:
Публичный ключ передается сторонним серверам, например, github, для открытия доступа на эти сервера. Приватный ключ хранится только на нашей машине и никому не передается. То есть когда у нас просят ssh-ключ, чтобы дать доступ на какой-нибудь сервер, мы отдаем именно публичный ключ, id_rsa.pub
Как сгенерировать ssh-ключ
ssh-ключи сами собой не появляются, но стоит проверить, возможно, они были установлены раньше. Запустим в терминале команды
Если этих файлов нет, то нужно сгенерировать ключи утилитой ssh-keygen. В Windows она устанавливается вместе с git, в Linux и MacOS при необходимости установите. В Linux, например, вот так
После этого нужно сгенерировать пару ключей, запустив команду в терминале
Как добавить ssh-ключ в настройках github
Два способа создания проекта
Первый, когда мы начинаем новый проект. Удобнее будет создать репозиторий на github и склонировать пустой проект на локальную машину.
Второй, когда у нас уже есть проект. Нужно зайти в папку проекта и связать его с уже существующим репозиторием на github. Это называется инициализация.
Рассмотрим оба способа.
Пустой проект
Идем в командную строку и запускаем
Непустой проект
Допустим, у нас на локальной машине уже есть проект second-site. Создаем в github репозиторий second-site. Заходим в папку проекта и выполняем команды
Все, можно приступать к работе над проектом. Команды add, commit и push мы разберем в следующих уроках.
Это единственный урок, в котором мы разбирались с тонкостями репозиториев. В дальнейшем будем считать, что репозиторий = проект.
Что могу посоветовать
Немного подробнее о копировании ssh-ключей
Как скопировать ssh-ключи с одной машины на другую
Хочу немного затронуть эту тему отдельно. Генерировать ключ на новой машине не обязательно. Но нужно выполнить такие действия
Ссылки, которые могут пригодиться
На этом все. В следующем уроке мы сделаем первые изменения в проекте и начнем понимать, в чем заключается прелесть git.
Клонирование частного репозитория Github
У меня есть частный репозиторий на Github для проекта, над которым я работаю. До сих пор я работал только на своем домашнем компьютере, но я только купил ноутбук, и я пытаюсь настроить его так, чтобы я мог работать над проектом с любого компьютера и вносить изменения.
Я добавил новый ключ SSH в свою учетную запись Github для ноутбука, и мне удалось клонировать и внести изменения в публичное тестовое репо, которое я настроил. Однако я не мог клонировать частное репо. Есть ли что-то особенное, что мне нужно сделать в командной строке, чтобы клонировать частное хранилище? Нужно ли мне настраивать новую учетную запись GitHub для моего ноутбука и настраивать себя в качестве соавтора?
Команда, которую я использовал, была git clone git://github.com/myusername/reponame.git
git:// URL-адреса доступны только для чтения, и, похоже, частные репозитории не разрешают эту форму доступа.
Это сработало для меня:
git clone https://username@github.com/username/repo_name
Это сработало для меня:
Я встречал эту проблему несколько раз, и каждый раз, когда я попадал на эту страницу, пробовал все и терпел неудачу!
Используя Git для Windows, проще использовать HTTPS url.
Для меня решение было:
Здесь вы должны быть владельцем репо, но если вы этого не сделаете, он пойдет как
Если у вас есть 2FA enabled то:
Когда появится запрос на ввод пароля, введите этот токен здесь.
У меня есть корпоративная (частная) учетная запись и включена двухфакторная аутентификация, поэтому мне пришлось объединить несколько постов, чтобы она работала, как показано ниже. (Записываю, так что это может быть полезно для кого-то с такой же ситуацией)
Это не решило проблему, поскольку проблема перешла к приведенному ниже, когда я попытался использовать команду clone следующим образом:
Обратите внимание: если неверный пароль для вашей учетной записи будет сохранен в диспетчере учетных данных Windows, это также усугубит проблему. Я удалил сохраненные таким образом учетные данные github, прежде чем перейти к шагу ниже.
Что такое git Clone и как клонировать репозиторий?
«Клонирование» означает создание идентичных особей естественным или искусственным путем.
Клонирование в Git — это процесс создания идентичной копии удаленного репозитория Git на локальную машину.
Когда мы клонируем репозиторий, все файлы загружаются на локальную машину, но удаленный репозиторий git остается неизменным. Внесение изменений и фиксация их в локальном репозитории (клонированном репозитории) никак не повлияет на удаленный репозиторий, который вы клонировали. Эти изменения, внесенные на локальном компьютере, могут быть синхронизированы с удаленным хранилищем в любое время, когда пользователь захочет.
Как работает клонирование в Git?
Многие люди хотят создать общий репозиторий, чтобы позволить команде разработчиков публиковать свой код на GitHub / GitLab / BitBucket и т. д. Репозиторий, загружаемый в сеть для совместной работы, называется вышестоящим репозиторием или центральным репозиторием.
Центральный репозиторий указывает, что все изменения от всех участников помещаются только в этот репозиторий. Таким образом, это самый обновленный экземпляр репозитория самого себя. Иногда это часто называют исходным хранилищем. Изображение, приведенное ниже, довольно ясно говорит о концепции клонирования.
Что касается приведенного выше изображения, то процесс клонирования работает на следующих этапах:
Клонирование репозитория: пользователь начинает работу с вышестоящего репозитория на GitHub. Процесс начинается с клонирования репозитория на локальную машину. Теперь у пользователя есть точная копия файлов проекта в их системе, чтобы внести изменения.
Внесите необходимые изменения: после клонирования участники вносят свой вклад в хранилище. Вклад в виде редактирования исходных файлов, приводящего либо к исправлению ошибки, либо к добавлению функциональности, либо, возможно, к оптимизации кода. Но суть в том, что все происходит в их локальной системе.
Проталкивание изменений: как только изменения будут сделаны, они могут быть перемещены в вышестоящий репозиторий.
Примечание: владелец репозитория может разрешить / запретить прямые изменения в Центральном репозитории, установить различные уведомления о любом изменении, перенесенном в центральное хранилище и многое другое.
Как использовать команду git Clone
Клонирование в Git может быть сделано на собственном репозитории или в любом другом репозитории.
Как клонировать репозиторий или использовать команду git Clone?
Клонирование репозитория из GitHub — это простой процесс. Но, прежде чем клонировать, пожалуйста, убедитесь, что у вас есть репозиторий на вашем аккаунте GitHub.
Каковы основные различия между раздвоением и клонированием?
Чтобы очистить свой разум от воздуха, если он у вас есть, давайте посмотрим, чем отличаются эти два термина:
Разветвление делается на аккаунт github, а клонирование осуществляется с использованием git. При форке репозитория вы создаете копию исходного репозитория (вышестоящего репозитория), но этот репозиторий остается в вашей учетной записи GitHub. В то же время, когда вы клонируете репозиторий, он копируется на вашу локальную машину с помощью Git.
Раздвоение — это понятие, а клонирование — это процесс. Разветвление — это просто содержащая отдельную копию репозитория команда, которая не участвует в этом процессе. Клонирование выполняется с помощью команды «git clone», и это процесс получения всех файлов кода на локальную машину.
В последнем уроке мы познакомились с командой Git fetch и Read more
Cloning a repository
In this article
When you create a repository on your enterprise, it exists as a remote repository. You can clone your repository to create a local copy on your computer and sync between the two locations.
About cloning a repository
You can clone a repository from GitHub.com to your local computer to make it easier to fix merge conflicts, add or remove files, and push larger commits. When you clone a repository, you copy the repository from GitHub.com to your local machine.
Cloning a repository pulls down a full copy of all the repository data that GitHub.com has at that point in time, including all versions of every file and folder for the project. You can push your changes to the remote repository on GitHub.com, or pull other people’s changes from GitHub.com. For more information, see «Using Git».
You can clone your existing repository or clone another person’s existing repository to contribute to a project.
Cloning a repository
On GitHub.com, navigate to the main page of the repository.
Above the list of files, click
To clone the repository using HTTPS, under «Clone with HTTPS», click
. To clone the repository using an SSH key, including a certificate issued by your organization’s SSH certificate authority, click Use SSH, then click
. To clone a repository using GitHub CLI, click Use GitHub CLI, then click
.
Change the current working directory to the location where you want the cloned directory.
Press Enter to create your local clone.
To learn more about GitHub CLI, see «About GitHub CLI.»
You can also use the GitHub URL to clone a repository.
Cloning an empty repository
An empty repository contains no files. It’s often made if you don’t initialize the repository with a README when creating it.
On GitHub.com, navigate to the main page of the repository.
To clone your repository using the command line using HTTPS, under «Quick setup», click
. To clone the repository using an SSH key, including a certificate issued by your organization’s SSH certificate authority, click SSH, then click
Alternatively, to clone your repository in Desktop, click
Change the current working directory to the location where you want the cloned directory.
Press Enter to create your local clone.
Troubleshooting cloning errors
When cloning a repository it’s possible that you might encounter some errors.
If you’re unable to clone a repository, check that:
Help us make these docs great!
All GitHub docs are open source. See something that’s wrong or unclear? Submit a pull request.