Перейти к содержимому
New

DeepSeek V4.1 Flash free for 7 days: 10M tokens a day after a top-up of $10 or more. Until Nov 30.

How it works

Что такое GitHub: репозитории, ветки и первый проект

GitHub для начинающих: что делают Git и GitHub, какие термины нужны, локальная практика с Git и как проверить проект перед запуском.

Начальный4 мин чтенияАвтор: NotHoly

GitHub — это сайт, где люди хранят, публикуют и проверяют программные проекты. Большинство этих проектов ведётся в Git, системе контроля версий, которая записывает каждое изменение в наборе файлов. GitHub держит репозитории Git в сети, добавляет к ним веб-интерфейс и даёт командам pull request, issues и релизы для совместной работы над кодом.

Коротко: Git — это инструмент, а GitHub — одно из мест, где размещают и обсуждают проекты на Git.

Git и GitHub — разные инструменты

Git работает на вашем компьютере. Любую папку можно превратить в репозиторий и записывать изменения без интернета и без аккаунта на GitHub.

GitHub — онлайн-сервис. Он хранит копии репозиториев Git, показывает файлы и историю в браузере и добавляет такие возможности, как трекер задач и pull request. Репозитории Git размещают и другие сервисы, так что GitHub лишь одно из таких мест.

Пять терминов для начала

  • Репозиторий (repo): папка проекта вместе с полной историей изменений.
  • Коммит: сохранённый снимок изменений с сообщением, которое их объясняет.
  • Ветка: отдельная линия коммитов. Вы работаете в ветке, чтобы основная линия оставалась стабильной, пока вы проверяете идею.
  • Pull request: запрос на слияние коммитов из одной ветки в другую, обычно после того, как кто-то просмотрит различия.
  • Релиз: именованная версия, которую мейнтейнеры решили опубликовать, часто с прикреплёнными файлами для скачивания.

Быстрее всего понять эти слова, создав репозиторий самому.

Практика Git на своей машине

Чтобы освоить основы, GitHub не нужен. Установите Git с официального сайта git-scm.com и проверьте установленную версию:

bash
git --version

На машине с Windows, где проверялась статья, команда вывела:

text
git version 2.49.0.windows.1

У вас версия будет другой. Теперь задайте имя и email, которые Git добавляет к каждому коммиту. Укажите свои значения:

bash
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

Создайте тренировочный репозиторий с двумя ветками и двумя коммитами:

bash
mkdir security-learning-notes
cd security-learning-notes
git init
printf '# security-learning-notes\n' > README.md
git add README.md
git commit -m "Add README"
git switch -c add-glossary
printf -- '- DNS\n- HTTPS\n- hash\n- encryption\n' > glossary.md
git add glossary.md
git commit -m "Add glossary terms"
git branch

git branch в этом репозитории вывела:

text
* add-glossary
  master

Звёздочка отмечает ветку, на которой вы находитесь. Ветка по умолчанию может называться master или main, в зависимости от настроек Git. В Windows Git может ещё выводить предупреждения об окончаниях строк. На коммиты они не влияют.

Загрузите проект на GitHub

В руководстве GitHub Hello World этот порядок действий описан для браузера. Меню и названия кнопок со временем меняются, так что, если экран не совпадает с текстом, следуйте официальному руководству:

  1. Создайте аккаунт на github.com.
  2. Создайте новый репозиторий с именем security-learning-notes. Выберите публичный или приватный.
  3. Добавьте файл README.md с одним предложением, описывающим проект.
  4. Создайте ветку add-glossary.
  5. Добавьте короткий список терминов и закоммитьте изменение.
  6. Откройте pull request, прочитайте diff и выполните слияние.

Шаг с pull request нужен даже в личном репозитории. В просмотре diff точно видно, какие строки изменились, ещё до того, как что-либо попадёт в основную ветку.

Чтобы отправить локальный репозиторий на GitHub, создайте на сайте пустой репозиторий и подключите его из терминала. OWNER и REPOSITORY здесь заполнители. Замените main именем своей ветки, если git branch показывает master:

bash
git remote add origin https://github.com/OWNER/REPOSITORY.git
git push -u origin main

Скачивание проекта

git clone копирует репозиторий вместе с полной историей:

bash
git clone https://github.com/OWNER/REPOSITORY.git

Замените OWNER и REPOSITORY владельцем и именем из адресной строки страницы проекта. Клонирование скачивает файлы. Оно ничего из проекта не запускает и не доказывает, что проект безопасен. ZIP-архив с сайта даёт файлы без истории: для чтения этого достаточно, но история коммитов теряется.

Проверьте проект перед запуском

Прежде чем запускать незнакомый инструмент, изучите сам репозиторий:

  • Это официальный upstream-проект или форк с неизвестным владельцем?
  • Есть ли лицензия, и чётко ли README перечисляет требования?
  • Публикует ли проект релизы? Если он публикует контрольные суммы или подписи, сверьте с ними скачанный файл.
  • Меняет ли install.sh или установочный скрипт системные пакеты, устанавливает ли службы, просит ли права администратора?
  • Какие сетевые соединения и разрешения понадобятся инструменту?
  • Можно ли сначала попробовать его в контейнере или одноразовой виртуальной машине?

Читайте установочные скрипты, прежде чем их выполнять. README, который просит вставить команду в терминал, просит вас запустить код на своей машине.

Инструменты безопасности предназначены для работы в пределах скоупа. Тренируйтесь на своих машинах, в собранной вами лаборатории или на целях, для которых есть письменное разрешение на тестирование.

Частые ошибки новичков

Первая частая ошибка: путать Git с GitHub. Git работает на вашем компьютере, и сайт ему не нужен. GitHub — сервис, построенный вокруг Git.

Вторая: коммитить секреты. Токен или пароль, отправленный в публичный репозиторий, может скопировать любой, кто его найдёт. Удаление строки следующим коммитом не убирает её из истории. Сначала отзовите учётные данные, затем следуйте руководству GitHub по удалению конфиденциальных данных из репозитория.

Третья: запускать команды из README, не прочитав их. Установочные скрипты могут изменить ваш компьютер, поэтому читайте их перед запуском.

Следующий шаг

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

Источники

  1. GitHub Docs: Hello World
  2. Pro Git: About Version Control
  3. Git documentation: git-clone
  4. GitHub Docs: About pull requests
  5. GitHub Docs: Removing sensitive data from a repository

Ещё по теме: Linux и инструменты разработчика

Linux и инструменты разработчика

Основы Bash для работы в безопасности

Пайпы, перенаправление, переменные, циклы, коды завершения и set -euo pipefail, а затем подсчёт неудачных входов и хеширование папки на этой основе.

Начальный11 мин чтения

Linux и инструменты разработчика

Права в Linux: пользователи, группы, chmod и umask

Владельцы и группы в Linux, биты rwx, chmod, umask и setuid, а также лабораторная, где доступ проверяется от имени второго пользователя и ищутся опасные режимы файлов.

Начальный11 мин чтения

Linux и инструменты разработчика

Ключи SSH: как они работают и как пользоваться ими безопасно

Как работают ключи хоста и пользователя в SSH, почему по умолчанию стоит брать Ed25519 с парольной фразой и как настроить и защитить вход по ключу на своей лабораторной VM.

Начальный9 мин чтения