Как можно сделать приватный репозиторий публичным на gitHub
Есть приватный репозиторий на GitHub . Хочу сделать его публичным для публикации на GitPages . Как это можно сделать?
Отслеживать
71.7k 5 5 золотых знаков 20 20 серебряных знаков 52 52 бронзовых знака
задан 10 фев 2020 в 8:55
Konstantin_SH Konstantin_SH
2,892 2 2 золотых знака 21 21 серебряный знак 45 45 бронзовых знаков
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Справа в меню зайти в настройки «Settings» затем вкладка «Options» и в самом низу «Make this repository public».
Обновлено: В разделе Settings > General в самом низу находим группу Danger Zone и выбираем Change visibility > Make public .
Настройка приватного Git-репозитория
Приватный git-репозиторий – отличный способ скрыть код в процессе разработки. Открытый исходный код, как правило, стремится к статус-кво, но иногда у разработчика есть необходимость запретить свободный доступ к коду ( к примеру, при разработке платного мобильного приложения). Имейте в виду, открытый код может быть прочитан любым пользователем, который знает URL-адрес, используемый для клона.
Одной из основных проблем для многих пользователей является веб-интерфейс репозитория. GitHub на удивление хорошо справляется с этой проблемой. Например, можно использовать приложения Gitosis, GitList или Goblet. Данный вопрос в этом руководстве не рассматривается, но пользователи, привыкшие к работе с графическим интерфейсом, могут установить одно из вышеперечисленных приложений сразу после установки Git-репозитория.
Данное руководство описывает настройку полноценного приватного Git-репозитория при помощи SSH-аутентификации. Как уже говорилось, оно не охватывает использование веб-интерфейса, а лишь объясняет установку Git и настройку доступа к нему.
Для приведения примеров руководство использует хост git.server.com; не забудьте заменить данный хост доменом вашего VPS.
Создание пары ключей SSH
Для начала нужно сгенерировать пару ключей SSH. В системах Mac или Linux для этого достаточно просто ввести следующие команды в терминал (замените адрес электронной почты в коде своим реальным адресом):
ssh-keygen -C «user_email@mailprovider.com»
Generating public/private rsa key pair.
Enter file in which to save the key (/home/flynn/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in foo_rsa.
Your public key has been saved in foo_rsa.pub.
The key fingerprint is:
ab:cd:ef:01:23:45:67:89:0a:bc:de:f0:12:34:56:78 flynn@en.com
The key’s randomart image is:
+—[ RSA 2048]—-+
| o+-+ .. |
| E o |
| . ++.o.. |
| o o H . |
| . . = |
| . =o.o= |
| o . |
| . |
| = o . |
+——————+
Настоятельно рекомендуется установить пароль на файлы ключей, поскольку это обеспечивает дополнительный уровень безопасности. В операционных системах Windows есть отдельные инструменты для генерации пары ключей, например, PuTTY Gen. Но эта программа запрещена в некоторых странах, а потому она идет с оговоркой о необходимости согласовать ее использование с местным законодательством. Уточнив этот момент, можно войти на VPS, создать пару ключей, и скачать id_rsa и id_rsa.pub.
Затем виртуальный выделенный сервер потребует отдельного пользователя для Git. Как правило, для простоты работы такого пользователя называют Git, что и будет сделано в данном руководстве. Но, конечно, для него можно выбрать абсолютно любое имя.
Создание пользователя и установка Git
Войдите на виртуальный выделенный сервер как root*:
*Примечание: некоторые пользователи предпочитают не использовать root для выполнения рутинных задач. В таком случае используется учетная запись с привилегиями sudo.
Создайте нового пользователя (как уже было сказано, необязательно называть его Git) для управления репозиторием.
Затем создайте пароль для пользователя git:
Теперь можно приступать к установке Git; для этого выполните:
yum install git
apt-get install git
Внесение SSH-ключа в список доступа
На данный момент нужно войти в систему как пользователь git. Используйте эту команду, чтобы перейти к нему:
Теперь нужно загрузить файл id_rsa.pub в домашний каталог пользователя git. Затем скажите SSH-демону принять ключи SSH. Это делается с помощью файла authorized_keys, который хранится в папке .ssh. Чтобы создать такой файл, наберите:
mkdir ~/.ssh && touch ~/.ssh/authorized_keys
Примечание: дважды использованный символ «&» объединяет команды; таким образом, система выполняет сначала первую, а затем вторую команду (без необходимости вводить их по отдельности). Тильда в начале пути (~) говорит системе использовать домашний каталог; то есть, в данном случае символ «~» указывает на /home/git/.
Теперь используйте команду cat, которая выведет содержимое файла в командной строке. Также нужно использовать модификатор «>>» (двойная угловая скобка), чтобы иметь возможность работать с полученным результатом, а не просто вывести его на экран. Будьте внимательны: модификатор «>» (одинарная угловая скобка) полностью перепишет содержимое второго указанного файла, а «>>» позволит добавить в него данные. В большинстве случаев рекомендуется использовать «>>», поскольку удалить внесенные изменения всегда проще, чем восстанавливать файл.
Каждый ключ нужно вносить в отдельную строку этого файла. Чтобы добавить только что созданный ключ, введите следующую команду, внеся в нее свои данные:
cat .ssh/id_rsa.pub | ssh user@123.45.56.78 «cat >> ~/.ssh/authorized_keys»
Теперь можно увидеть внесенный ключ в файле, запустив команду cat на файл authorized_keys:
Чтобы добавить в список доступа другие ключи, используйте их файлы id_rsa.pub и внесите их в файл authorized_keys, как было показано выше.
Создание локального репозитория git
Этот процесс достаточно прост. Нужно всего лишь вызвать команду git и инициализировать пустой репозиторий в любом каталоге. К примеру, проект называется New Project. При создании папки нужно использовать только нижний регистр, заменить все пробелы дефисами, а также внести в имя расширение .git. Итак, репозиторий New Project будет называться new-project.git.
Чтобы создать папку для пустого репозитория Git, введите:
git init —bare new-project.git
Готово! Пустой git-репозиторий готов к работе.
Использование git-репозитория с локального компьютера
В Linux или Mac OS необходимо изменить URL существующего удаленного репозитория. При наличии локального репозитория, который нужно толкнуть на сервер, используйте эту команду:
git remote set-url origin git@git.server.com:new-project.git
Если это новый репозиторий, используйте:
git init && git remote add origin git@git.server.com:new-project.git
Теперь можно добавлять, закачивать и даже клонировать проект с полной уверенностью в том, что он недоступен другим пользователям.
Но что если проект разрабатывается в команде, и другие разработчики также должны иметь доступ к репозиторию? Дл этого существует простой и эффективный способ: создайте папку с именем каждого пользователя; в домашней папке списка пользователей Git наберите:
mkdir user1 user2
Затем, указывая удаленный репозиторий, выполните команду:
git remote add origin git@git.server.com:user1/user-project.git
Как сделать репозиторий git приватным
Когда вы работаете с Git, вы можете столкнуться с ситуацией, когда необходимо сделать репозиторий приватным, чтобы ограничить доступ к коду только для определенных пользователей или команды разработчиков. В этой статье я расскажу вам, как вы можете сделать свой репозиторий Git приватным.
1. Создание нового репозитория
Если вы только начинаете работать с Git и хотите создать новый репозиторий, вы можете сделать его приватным с самого начала. Когда вы создаете новый репозиторий на платформе хостинга Git, например, на GitHub или GitLab, вы можете выбрать опцию сделать его приватным.
2. Приватный репозиторий из существующего
Если у вас уже есть существующий публичный репозиторий и вы хотите сделать его приватным, вам необходимо выполнить следующие шаги:
2.1. Клонирование репозитория на локальный компьютер
git clone https://github.com/your-username/your-repository.git
2.2. Перенос изменений в новый приватный репозиторий
Создайте новый приватный репозиторий на платформе хостинга Git.
git remote set-url origin https://github.com/your-username/your-private-repository.git git push -u origin master
В приведенной выше команде замените «your-username» на ваше имя пользователя и «your-private-repository» на имя вашего нового приватного репозитория.
2.3. Удаление старого публичного репозитория (по желанию)
git remote remove origin git remote add origin https://github.com/your-username/your-private-repository.git git push -u origin master
В приведенной выше команде замените «your-username» на ваше имя пользователя и «your-private-repository» на имя вашего нового приватного репозитория.
3. Управление доступом к приватному репозиторию
После того, как ваш репозиторий станет приватным, вы можете управлять доступом к нему, приглашая конкретных пользователей или команды разработчиков. Каждый приглашенный пользователь должен иметь аккаунт на платформе хостинга Git.
3.1. Добавление пользователей
git remote add collaborators-username https://github.com/collaborators-username/your-repository.git git push -u collaborators-username branch-name
В приведенной выше команде замените «collaborators-username» на имя пользователя вашего соавтора, «your-repository» на имя вашего репозитория и «branch-name» на имя ветки, которую вы хотите поделиться с этим пользователем. Это позволит добавить пользователя в качестве соавтора вашего приватного репозитория.
3.2. Удаление пользователей
git remote remove collaborators-username git push origin :branch-name
В приведенной выше команде замените «collaborators-username» на имя пользователя вашего соавтора и «branch-name» на имя ветки, которую вы хотите удалить. Это позволит удалить пользователя из вашего приватного репозитория.
4. Защита приватного репозитория
Чтобы обеспечить безопасность вашего приватного репозитория, рекомендуется применить следующие меры:
4.1. Использование двухфакторной аутентификации (2FA)
Включение двухфакторной аутентификации для вашей учетной записи позволит обезопасить доступ к вашим приватным репозиториям. Это также поможет предотвратить несанкционированный доступ к вашим учетным данным.
4.2. Управление разрешениями
Тщательно рассматривайте разрешения, которые вы предоставляете пользователям или командам разработчиков. Убедитесь, что каждый пользователь имеет необходимый уровень доступа и что разрешения обновляются или отзываются по мере необходимости.
4.3. Проверка ревизий безопасности
Регулярно проверяйте обновления безопасности и исправления уязвимостей, применяя все соответствующие обновления. Это поможет защитить ваш приватный репозиторий от возможных атак.
4.4. Проверка конфиденциальности данных
Убедитесь, что конфиденциальные данные не содержатся в истории коммитов или в других публичных местах. Не забывайте использовать механизмы шифрования, если это необходимо, чтобы защитить важные данные.
Заключение
Сделать ваш репозиторий Git приватным может быть критически важно для сохранения конфиденциальности и безопасности вашего кода. В этой статье мы рассмотрели, как создать новый приватный репозиторий и превратить существующий репозиторий в приватный. Мы также обсудили методы управления доступом и защиты приватного репозитория. Не забывайте принимать соответствующие меры безопасности, чтобы обеспечить надежность вашего кода и учетных данных.
Приглашение участников совместной работы в личный репозиторий
Вы можете пригласить пользователей стать участников совместной работы в личном репозитории.
Кто эту функцию можно использовать?
Если вы используете GitHub Free, в общедоступных и частных репозиториях можно добавить неограниченное число участников совместной работы.
В этой статье
About collaboration in a personal repository
To collaborate with users in a repository that belongs to your personal account on GitHub, you can invite the users as collaborators.
If you want to grant more granular access to the repository, you can create a repository within an organization. For more information, see «Access permissions on GitHub.»
Private forks inherit the permissions structure of the upstream repository. This helps owners of private repositories maintain control over their code. For example, if the upstream repository is private and gives read/write access to a team, then the same team will have read/write access to any forks of the private upstream repository. Only team permissions (not individual permissions) are inherited by private forks.
Note: When you change base permissions for an organization, permissions for private forks are not automatically updated. For more information, see «Setting base permissions for an organization.»
Inviting a collaborator to a personal repository
You can send an invitation to collaborate in your repository directly to someone on GitHub, or to the person’s email address
GitHub limits the number of people who can be invited to a repository within a 24-hour period. If you exceed this limit, either wait 24 hours or create an organization to collaborate with more people. For more information, see «Creating a new organization from scratch.»
- Ask for the username of the person you’re inviting as a collaborator. If they don’t have a username yet, they can sign up for GitHub. For more information, see «Creating an account on GitHub.»
- On GitHub.com, navigate to the main page of the repository.
- Under your repository name, click
Settings. If you cannot see the «Settings» tab, select the
dropdown menu, then click Settings.
Further reading
- «Permission levels for a personal account repository»
- «Removing a collaborator from a personal repository»
- «Removing yourself from a collaborator’s repository»
- «Organizing members into teams»