You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/ru/1-getting-started-lessons/2-github-basics/README.md

29 KiB

Введение в GitHub

Этот урок охватывает основы 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 с написанием любовного письма самому себе в будущем. Читая сообщения о коммитах через дни, недели или месяцы, вы сможете вспомнить, почему приняли то или иное решение, или "откатить" изменения — при условии, что вы пишете хорошие сообщения о коммитах.

Задача: Создать репозиторий и зафиксировать код

Посмотрите видео

Видео о Git и GitHub

  1. Создайте репозиторий на GitHub. На GitHub.com, в разделе репозиториев или в верхнем правом углу навигационной панели, найдите кнопку new repo.

    1. Дайте вашему репозиторию (папке) имя.
    2. Выберите create repository.
  2. Перейдите в рабочую папку. В терминале переключитесь на папку (также известную как директория), которую вы хотите начать отслеживать. Введите:

    cd [name of your folder]
    
  3. Инициализируйте репозиторий git. В вашем проекте введите:

    git init
    
  4. Проверьте статус. Чтобы проверить статус репозитория, введите:

    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 сообщает, какие файлы готовы к сохранению в репозитории или содержат изменения, которые вы, возможно, захотите зафиксировать.

  5. Добавьте все файлы для отслеживания
    Это также называется подготовкой файлов/добавлением файлов в область подготовки.

    git add .
    

    Аргумент git add плюс . указывает, что все ваши файлы и изменения будут отслеживаться.

  6. Добавьте выбранные файлы для отслеживания

    git add [file or folder name]
    

    Это позволяет добавлять только выбранные файлы в область подготовки, если вы не хотите фиксировать все файлы сразу.

  7. Отмените подготовку всех файлов

    git reset
    

    Эта команда позволяет отменить подготовку всех файлов сразу.

  8. Отмените подготовку конкретного файла

    git reset [file or folder name]
    

    Эта команда позволяет отменить подготовку только одного конкретного файла, который вы не хотите включать в следующий коммит.

  9. Сохраните свою работу. На этом этапе вы добавили файлы в так называемую область подготовки. Это место, где Git отслеживает ваши файлы. Чтобы сделать изменения постоянными, вам нужно зафиксировать файлы. Для этого создайте коммит с помощью команды git commit. Коммит представляет собой точку сохранения в истории вашего репозитория. Введите следующую команду, чтобы создать коммит:

    git commit -m "first commit"
    

    Это фиксирует все ваши файлы, добавляя сообщение "first commit". В будущем для сообщений о коммитах вы захотите быть более описательными, чтобы передать, какой тип изменений вы внесли.

  10. Свяжите локальный репозиторий 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, который вы создали ранее.

  11. Отправьте локальные файлы на GitHub. До сих пор вы создали подключение между локальным репозиторием и репозиторием GitHub. Давайте отправим эти файлы на GitHub с помощью следующей команды git push, как показано ниже:

    Примечание: имя вашей ветки по умолчанию может отличаться от main.

    git push -u origin main
    

    Это отправляет ваши коммиты в ветке "main" на GitHub. Установка ветки upstream, включая -u в команде, устанавливает связь между вашей локальной веткой и удаленной веткой, так что вы можете просто использовать git push или git pull без указания имени ветки в будущем. Git автоматически будет использовать ветку upstream, и вам не нужно будет явно указывать имя ветки в будущих командах.

  12. Добавление новых изменений. Если вы хотите продолжить внесение изменений и отправку их на GitHub, вам нужно будет использовать следующие три команды:

    git add .
    git commit -m "type your commit message here"
    git push
    

    Совет: возможно, вы захотите использовать файл .gitignore, чтобы предотвратить отображение файлов, которые вы не хотите отслеживать, на GitHub — например, файл заметок, который вы храните в той же папке, но который не должен быть в публичном репозитории. Вы можете найти шаблоны для файлов .gitignore на .gitignore templates.

Сообщения о коммитах

Отличная строка темы коммита Git завершает следующее предложение: Если применить, этот коммит <ваша строка темы здесь>

Для темы используйте повелительное наклонение в настоящем времени: "изменить", а не "изменено" или "изменяет". Как и в теме, в теле (опционально) также используйте повелительное наклонение в настоящем времени. Тело должно включать мотивацию для изменения и контрастировать это с предыдущим поведением. Вы объясняете почему, а не как.

Потратьте несколько минут, чтобы поискать на GitHub. Можете ли вы найти действительно отличное сообщение о коммите? А минимальное? Какую информацию, по вашему мнению, наиболее важно и полезно передать в сообщении о коммите?

Задача: Сотрудничество

Основная причина размещения вещей на GitHub — это возможность сотрудничать с другими разработчиками.

Работа над проектами с другими

Посмотрите видео

Видео о Git и GitHub

В вашем репозитории перейдите в Insights > Community, чтобы увидеть, как ваш проект соответствует рекомендованным стандартам сообщества.

Вот несколько вещей, которые могут улучшить ваш репозиторий на GitHub:

Все эти ресурсы помогут новым участникам команды быстрее адаптироваться. Обычно именно такие вещи новые участники изучают перед тем, как взглянуть на ваш код, чтобы понять, подходит ли ваш проект для их времени и усилий.

Файлы README, хотя их подготовка занимает время, часто игнорируются занятыми поддерживающими проект разработчиками. Можете ли вы найти пример особенно описательного README? Примечание: существуют инструменты для создания хороших README, которые вам могут понравиться.

Задача: Объединение кода

Документы для внесения изменений помогают людям вносить вклад в проект. Они объясняют, какие типы вкладов вы ищете и как работает процесс. Участники должны пройти ряд шагов, чтобы иметь возможность внести вклад в ваш репозиторий на GitHub:

  1. Форк вашего репозитория. Вы, вероятно, захотите, чтобы люди форкали ваш проект. Форк означает создание копии вашего репозитория в их профиле GitHub.
  2. Клонирование. После этого они клонируют проект на свой локальный компьютер.
  3. Создание ветки. Вы захотите попросить их создать ветку для своей работы.
  4. Сосредоточение изменений на одной области. Попросите участников сосредоточить свои изменения на одной вещи за раз — так вероятность того, что вы сможете объединить их работу, будет выше. Представьте, что они исправляют баг, добавляют новую функцию и обновляют несколько тестов — что, если вы хотите или можете реализовать только 2 из 3 или 1 из 3 изменений?

Представьте ситуацию, где ветки особенно важны для написания и выпуска хорошего кода. Какие случаи использования вы можете придумать?

Примечание: будьте тем изменением, которое вы хотите видеть в мире, и создавайте ветки для своей работы. Любые коммиты, которые вы делаете, будут сделаны в ветке, в которой вы сейчас "находитесь". Используйте git status, чтобы увидеть, в какой ветке вы находитесь.

Давайте рассмотрим рабочий процесс участника. Предположим, участник уже форкал и клонировал репозиторий, так что у него есть готовый репозиторий Git на локальном компьютере:

  1. Создайте ветку. Используйте команду git branch, чтобы создать ветку, которая будет содержать изменения, которые они планируют внести:

    git branch [branch-name]
    
  2. Переключитесь на рабочую ветку. Переключитесь на указанную ветку и обновите рабочую директорию с помощью команды git switch:

    git switch [branch-name]
    
  3. Работайте. На этом этапе вы хотите внести свои изменения. Не забудьте сообщить об этом Git с помощью следующих команд:

    git add .
    git commit -m "my changes"
    

    Убедитесь, что вы дали вашему коммиту хорошее имя — для вашего удобства, а также для удобства поддерживающего репозиторий, которому вы помогаете.

  4. Объедините вашу работу с веткой main. В какой-то момент вы завершите работу и захотите объединить ее с веткой main. Ветка main могла измениться за это время, поэтому сначала убедитесь, что вы обновили ее до последней версии с помощью следующих команд:

    git switch main
    git pull
    

    На этом этапе вы хотите убедиться, что любые конфликты, ситуации, где Git не может легко объединить изменения, происходят в вашей рабочей ветке. Поэтому выполните следующие команды:

    git switch [branch_name]
    git merge main
    

    Команда git merge main объединит все изменения из main в вашу ветку. Надеемся, вы сможете просто продолжить. Если нет, VS Code покажет вам, где Git запутался, и вы просто измените затронутые файлы, чтобы указать, какой контент наиболее точен.

    Чтобы переключиться на другую ветку, используйте современную команду git switch:

    git switch [branch_name]
    
    
    
  5. Отправьте вашу работу на GitHub. Отправка вашей работы на GitHub означает две вещи: отправку вашей ветки в ваш репозиторий и открытие PR (Pull Request).

    git push --set-upstream origin [branch-name]
    

    Команда выше создает ветку в вашем форкнутом репозитории.

  6. Открыть PR. Далее вам нужно открыть PR. Для этого перейдите в форкнутый репозиторий на GitHub. На GitHub будет указано, хотите ли вы создать новый PR. Нажмите на это, и вы попадете в интерфейс, где можно изменить заголовок сообщения коммита и добавить более подходящее описание. Теперь владелец репозитория, который вы форкнули, увидит ваш PR и, держим кулачки, оценит его и объединит ваш PR. Поздравляем, теперь вы — участник проекта, ура! :)

  7. Очистка. Считается хорошей практикой очистить после успешного объединения 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 и попробуйте сделать несколько вещей, например, изменить настройки, добавить информацию в репозиторий или создать проект (например, доску Kanban). Возможностей много!


🚀 Задание

Работайте в паре с другом над кодом друг друга. Создайте проект совместно, форкните код, создайте ветки и объедините изменения.

Викторина после лекции

Викторина после лекции

Обзор и самостоятельное изучение

Прочитайте больше о внесении вклада в open source.

Шпаргалка по Git.

Практикуйтесь, практикуйтесь, практикуйтесь. GitHub предлагает отличные учебные курсы на skills.github.com:

Там также есть более продвинутые курсы.

Задание

Пройдите курс Первая неделя на GitHub


Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.