28 KiB
Введение в GitHub
Этот урок охватывает основы GitHub — платформы для размещения и управления изменениями в вашем коде.
Скетчноут от Tomomi Imura
Тест перед лекцией
Введение
В этом уроке мы рассмотрим:
- отслеживание работы, которую вы выполняете на своем компьютере
- совместную работу над проектами с другими
- как вносить вклад в проекты с открытым исходным кодом
Предварительные требования
Перед началом убедитесь, что Git установлен. В терминале введите:
git --version
Если Git не установлен, скачайте Git. Затем настройте локальный профиль Git в терминале:
git config --global user.name "ваше-имя"
git config --global user.email "ваш-email"
Чтобы проверить, настроен ли Git, введите:
git config --list
Вам также понадобится аккаунт на GitHub, редактор кода (например, Visual Studio Code) и доступ к терминалу (или командной строке).
Перейдите на github.com, создайте аккаунт, если у вас его еще нет, или войдите в систему и заполните свой профиль.
✅ GitHub — не единственное хранилище кода в мире; есть и другие, но GitHub — самое известное.
Подготовка
Вам понадобится папка с проектом кода на вашем локальном компьютере (ноутбуке или ПК) и публичное хранилище на GitHub, которое будет служить примером того, как вносить вклад в проекты других людей.
Управление кодом
Предположим, у вас есть локальная папка с проектом кода, и вы хотите начать отслеживать свой прогресс с помощью git — системы контроля версий. Некоторые люди сравнивают использование git с написанием любовного письма самому себе в будущем. Читая сообщения о коммитах через дни, недели или месяцы, вы сможете вспомнить, почему приняли то или иное решение, или "откатить" изменения — при условии, что вы пишете хорошие сообщения о коммитах.
Задача: Создать репозиторий и зафиксировать код
Посмотрите видео
-
Создайте репозиторий на GitHub. На GitHub.com, в разделе репозиториев или в верхней навигационной панели, найдите кнопку new repo.
- Дайте вашему репозиторию (папке) имя.
- Выберите create repository.
-
Перейдите в рабочую папку. В терминале переключитесь на папку (также известную как директория), которую вы хотите начать отслеживать. Введите:
cd [name of your folder]
-
Инициализируйте git-репозиторий. В вашем проекте введите:
git init
-
Проверьте статус. Чтобы проверить статус вашего репозитория, введите:
git status
вывод может выглядеть примерно так:
Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: file.txt modified: file2.txt
Обычно команда
git status
сообщает вам, какие файлы готовы к сохранению в репозитории или имеют изменения, которые вы, возможно, захотите зафиксировать. -
Добавьте все файлы для отслеживания
Это также называется этапом подготовки файлов/добавлением файлов в область подготовки.git add .
Аргумент
git add
плюс.
указывает, что все ваши файлы и изменения будут отслеживаться. -
Добавьте выбранные файлы для отслеживания
git add [file or folder name]
Это позволяет добавлять только выбранные файлы в область подготовки, если вы не хотите фиксировать все файлы сразу.
-
Уберите все файлы из области подготовки
git reset
Эта команда позволяет убрать все файлы из области подготовки сразу.
-
Уберите конкретный файл из области подготовки
git reset [file or folder name]
Эта команда позволяет убрать только конкретный файл из области подготовки, если вы не хотите включать его в следующий коммит.
-
Сохраните свою работу. На этом этапе вы добавили файлы в так называемую область подготовки. Это место, где Git отслеживает ваши файлы. Чтобы сделать изменения постоянными, вам нужно зафиксировать файлы. Для этого создайте коммит с помощью команды
git commit
. Коммит представляет собой точку сохранения в истории вашего репозитория. Введите следующую команду, чтобы создать коммит:git commit -m "first commit"
Это фиксирует все ваши файлы, добавляя сообщение "first commit". В будущем вы захотите быть более описательными в своих сообщениях о коммитах, чтобы передать, какие изменения вы внесли.
-
Свяжите локальный репозиторий Git с GitHub. Репозиторий Git хорош на вашем компьютере, но в какой-то момент вы захотите создать резервную копию своих файлов где-то еще и пригласить других людей работать с вами над вашим репозиторием. Одно из таких отличных мест — GitHub. Помните, что мы уже создали репозиторий на GitHub, поэтому единственное, что нам нужно сделать, это связать наш локальный репозиторий Git с GitHub. Команда
git remote add
сделает это. Введите следующую команду:Примечание: перед вводом команды перейдите на страницу вашего репозитория на GitHub, чтобы найти URL репозитория. Вы будете использовать его в команде ниже. Замените
https://github.com/username/repository_name.git
на ваш URL GitHub.git remote add origin https://github.com/username/repository_name.git
Это создает удаленное подключение, названное "origin", указывающее на репозиторий GitHub, который вы создали ранее.
-
Отправьте локальные файлы на GitHub. До сих пор вы создали подключение между локальным репозиторием и репозиторием GitHub. Давайте отправим эти файлы на GitHub с помощью следующей команды
git push
, как показано ниже:Примечание: имя вашей ветки может отличаться от
main
.git push -u origin main
Это отправляет ваши коммиты в ветку "main" на GitHub.
-
Добавьте больше изменений. Если вы хотите продолжить вносить изменения и отправлять их на GitHub, вам нужно будет использовать следующие три команды:
git add . git commit -m "type your commit message here" git push
Совет: возможно, вы захотите использовать файл
.gitignore
, чтобы предотвратить отображение файлов, которые вы не хотите отслеживать, на GitHub — например, файл заметок, который вы храните в той же папке, но который не должен быть в публичном репозитории. Вы можете найти шаблоны для файлов.gitignore
на шаблоны .gitignore.
Сообщения о коммитах
Отличная строка темы коммита Git завершает следующее предложение:
Если применить, этот коммит <ваша строка темы здесь>
Для темы используйте повелительное наклонение в настоящем времени: "изменить", а не "изменено" или "изменяет".
Как и в теме, в теле (опционально) также используйте повелительное наклонение в настоящем времени. Тело должно включать мотивацию для изменения и контрастировать это с предыдущим поведением. Вы объясняете почему
, а не как
.
✅ Потратьте несколько минут, чтобы просмотреть GitHub. Можете ли вы найти действительно отличное сообщение о коммите? А минимальное? Какую информацию, по вашему мнению, наиболее важно и полезно передать в сообщении о коммите?
Задача: Сотрудничество
Основная причина размещения вещей на GitHub — это возможность сотрудничать с другими разработчиками.
Работа над проектами с другими
Посмотрите видео
В вашем репозитории перейдите в Insights > Community
, чтобы увидеть, как ваш проект соответствует рекомендуемым стандартам сообщества.
Вот несколько вещей, которые могут улучшить ваш репозиторий на GitHub:
- Описание. Добавили ли вы описание для вашего проекта?
- README. Добавили ли вы README? GitHub предоставляет рекомендации по написанию README.
- Руководство по внесению изменений. Есть ли у вашего проекта руководство по внесению изменений?
- Кодекс поведения. Кодекс поведения.
- Лицензия. Возможно, самое важное — лицензия.
Все эти ресурсы помогут новым участникам команды. Обычно это те вещи, которые новые участники смотрят перед тем, как изучить ваш код, чтобы понять, подходит ли ваш проект для их времени.
✅ Файлы README, хотя их подготовка занимает время, часто игнорируются занятыми поддерживающими. Можете ли вы найти пример особенно описательного README? Примечание: есть инструменты для создания хороших README, которые вам могут понравиться.
Задача: Объединить код
Документы о внесении изменений помогают людям вносить вклад в проект. Они объясняют, какие типы вкладов вы ищете и как работает процесс. Участники должны пройти серию шагов, чтобы внести вклад в ваш репозиторий на GitHub:
- Форк вашего репозитория. Вы, вероятно, захотите, чтобы люди форкнули ваш проект. Форк означает создание копии вашего репозитория в их профиле GitHub.
- Клонирование. После этого они клонируют проект на свой локальный компьютер.
- Создание ветки. Вы захотите попросить их создать ветку для своей работы.
- Сосредоточение изменений на одной области. Попросите участников сосредоточить свои изменения на одной вещи за раз — так вероятность того, что вы сможете объединить их работу, будет выше. Представьте, что они исправляют баг, добавляют новую функцию и обновляют несколько тестов — что, если вы хотите или можете реализовать только 2 из 3 или 1 из 3 изменений?
✅ Представьте ситуацию, где ветки особенно важны для написания и выпуска хорошего кода. Какие случаи использования вы можете придумать?
Примечание: будьте тем изменением, которое вы хотите видеть в мире, и создавайте ветки для своей работы. Любые коммиты, которые вы делаете, будут сделаны в ветке, в которой вы сейчас "находитесь". Используйте
git status
, чтобы увидеть, в какой ветке вы находитесь.
Давайте рассмотрим рабочий процесс участника. Предположим, участник уже форкнул и клонировал репозиторий, поэтому у него есть готовый репозиторий Git на локальном компьютере:
-
Создайте ветку. Используйте команду
git branch
, чтобы создать ветку, которая будет содержать изменения, которые они хотят внести:git branch [branch-name]
-
Переключитесь на рабочую ветку. Переключитесь на указанную ветку и обновите рабочую директорию с помощью
git switch
:git switch [branch-name]
-
Работайте. На этом этапе вы хотите добавить свои изменения. Не забудьте сообщить об этом Git с помощью следующих команд:
git add . git commit -m "my changes"
Убедитесь, что вы дали вашему коммиту хорошее имя — для вашего удобства, а также для удобства поддерживающего репозиторий, которому вы помогаете.
-
Объедините свою работу с веткой
main
. В какой-то момент вы завершите работу и захотите объединить ее с веткойmain
. Веткаmain
могла измениться за это время, поэтому сначала убедитесь, что вы обновили ее до последней версии с помощью следующих команд:git switch main git pull
На этом этапе вы хотите убедиться, что любые конфликты, ситуации, где Git не может легко объединить изменения, происходят в вашей рабочей ветке. Поэтому выполните следующие команды:
git switch [branch_name] git merge main
Это принесет все изменения из
main
в вашу ветку, и, надеемся, вы сможете просто продолжить. Если нет, VS Code покажет вам, где Git запутался, и вы просто измените затронутые файлы, чтобы указать, какой контент наиболее точен. -
Отправьте свою работу на GitHub. Отправка вашей работы на GitHub означает две вещи: отправка вашей ветки в ваш репозиторий и открытие PR (Pull Request).
git push --set-upstream origin [branch-name]
Команда выше создает ветку в вашем форкнутом репозитории.
-
Откройте PR. Далее вы захотите открыть PR. Для этого перейдите в форкнутый репозиторий на GitHub. Вы увидите уведомление на GitHub, где вас спросят, хотите ли вы создать новый PR. Нажмите на него, и вы попадете в интерфейс, где сможете изменить заголовок сообщения коммита, дать ему более подходящее описание. Теперь поддерживающий репозиторий, который вы форкнули, увидит этот PR, и надеемся, он оценит и объединит ваш PR. Теперь вы участник, ура :)
-
Очистите. Считается хорошей практикой очистить после успешного объединения PR. Вы захотите удалить как локальную ветку, так и ветку, которую вы отправили на GitHub. Сначала удалите ее локально с помощью следующей команды:
git branch -d [branch-name]
Убедитесь, что вы также удалили удаленную ветку на странице форкнутого репозитория на GitHub.
Pull request
кажется странным термином, ведь на самом деле вы хотите "запушить" свои изменения в проект. Однако владелец проекта или основная команда должны рассмотреть ваши изменения перед их объединением с "главной" веткой проекта, так что вы, по сути, запрашиваете решение о внесении изменений у владельца проекта.
Pull request
— это место, где можно сравнить и обсудить различия, внесенные в ветку, с помощью обзоров, комментариев, интегрированных тестов и других инструментов. Хороший pull request
следует примерно тем же правилам, что и сообщение о коммите. Вы можете добавить ссылку на задачу в трекере задач, если ваша работа, например, исправляет проблему. Это делается с помощью символа #
, за которым следует номер задачи. Например, #97
.
🤞Держим кулачки, чтобы все проверки прошли успешно и владелец(ы) проекта объединили ваши изменения с проектом🤞
Обновите текущую локальную рабочую ветку, добавив все новые коммиты из соответствующей удаленной ветки на GitHub:
git pull
Как внести вклад в open source
Сначала найдите репозиторий (или repo) на GitHub, который вас интересует и в который вы хотели бы внести изменения. Вам нужно будет скопировать его содержимое на свой компьютер.
✅ Хороший способ найти репозитории, подходящие для новичков, — поиск по тегу 'good-first-issue'.
Существует несколько способов копирования кода. Один из них — "клонировать" содержимое репозитория, используя HTTPS, SSH или GitHub CLI (Command Line Interface).
Откройте терминал и клонируйте репозиторий следующим образом:
git clone https://github.com/ProjectURL
Чтобы работать над проектом, перейдите в нужную папку:
cd ProjectURL
Вы также можете открыть весь проект, используя Codespaces, встроенный редактор кода / облачную среду разработки от GitHub, или GitHub Desktop.
Наконец, вы можете скачать код в виде архива.
Несколько интересных фактов о GitHub
Вы можете поставить звезду, подписаться на обновления или "форкнуть" любой публичный репозиторий на GitHub. Найти свои отмеченные звездами репозитории можно в выпадающем меню в правом верхнем углу. Это как закладки, но для кода.
У проектов есть трекер задач, чаще всего на GitHub во вкладке "Issues", если не указано иначе, где люди обсуждают проблемы, связанные с проектом. А во вкладке Pull Requests обсуждаются и проверяются изменения, которые находятся в процессе работы.
У проектов также могут быть форумы, списки рассылки или чаты, такие как Slack, Discord или IRC.
✅ Осмотритесь в своем новом репозитории на GitHub и попробуйте сделать несколько вещей, например, изменить настройки, добавить информацию в репозиторий или создать проект (например, Канбан-доску). Возможностей много!
🚀 Задание
Работайте в паре с другом над кодом друг друга. Создайте проект совместно, форкните код, создайте ветки и объедините изменения.
Викторина после лекции
Обзор и самостоятельное изучение
Прочитайте больше о внесении вклада в open source.
Практика, практика, практика. GitHub предлагает отличные учебные материалы на skills.github.com:
Там также можно найти более продвинутые курсы.
Задание
Пройдите курс "Первая неделя на GitHub"
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия по обеспечению точности, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода.