Начало работы с Git и GitHub

Для многих разработчиков Git и GitHub являются важнейшими инструментами для размещения и документирования кода.

Они играют важную роль в оказании помощи разработчикам:

  • вносить вклад в проекты с открытым исходным кодом
  • совместно разрабатывать продукты для компаний-разработчиков программного обеспечения.

Для того чтобы приступить к работе в новом программном обеспечении или участвовать в проектах с открытым исходным кодом, необходимо понимать основы их использования.

Этот пост объясняет, что такое Git и GitHub и как их использовать.
Читать дальше…

Git

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

GitHub?

Что такое GitHub, если Git — это система контроля версий?
Важно отметить, что Github — это удаленный сервер, который находится в облаке, и все элементы, выполненные каждым членом команды разработчиков, хранятся вместе на этом сервере.
Помимо GitHub, другие облачные репозитории, такие как BitBucket, GitLab и другие, хранят в облаке хранилища контента, кода и документов.

Преимущества использования Git и GitHub

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

  1. Возможность разветвления: Для каждого изменения кода или контента, которое вы хотите сделать, Git позволяет создавать изолированные среды в виде ветвей, которые вы можете объединить позже.

  2. Быстрое сотрудничество с открытым исходным кодом: Будучи свободной и децентрализованной системой распространения, любой человек в любой точке мира может легко внести свой вклад в проект. Все, что им нужно, это сделать форк определенного репозитория, внести в него изменения и отправить запрос на внесение изменений.

  3. Быстрый цикл выпуска и развертывания: Git позволяет командам разработчиков программного обеспечения адаптироваться к agile-процессам. С помощью такого инструмента, как git, разработчики программного обеспечения могут часто вносить изменения в свой код и возвращать эти изменения при возникновении проблем. Это очень важно для непрерывной интеграции и непрерывного развития.

  4. Отслеживание изменений контента: С помощью Git каждый член команды может отслеживать, кто вносит изменения в контент или код. То же самое касается времени, когда было сделано изменение.

Установка Git на локальную машину

Git совместим с различными операционными системами. К ним относятся Windows OS, Linux OS и Mac OS. Каждая из этих операционных систем имеет уникальный процесс установки.

Linux (Ubuntu)

Для установки Git в Linux необходимо использовать терминал. Всего несколько команд, и вы сможете начать использовать Git в своем дистрибутиве Linux.
Большинство дистрибутивов Linux поставляются с предустановленным Git’ом.

Для перекрестной проверки запустите

$ git --version
Войдите в полноэкранный режим Выйти из полноэкранного режима

Если вы увидите результат, подобный этому

Значит, у вас установлен Git
Если это так, вы можете переходить к настройке.

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

Первая команда предполагает обновление пакетов приложений. То есть

$ sudo apt update
Войти в полноэкранный режим Выйти из полноэкранного режима

Затем используйте команду

$ sudo apt install git
Вход в полноэкранный режим Выход из полноэкранного режима

установить git

Как только вы закончите установку пакета, проверьте версию еще раз

$ git --version
Войдите в полноэкранный режим Выйти из полноэкранного режима

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

Выполните команды

$ git config --global user.name "your choice username with no spaces"
Войти в полноэкранный режим Выйти из полноэкранного режима
$ git config --global user.email "your email address"
Войти в полноэкранный режим Выйти из полноэкранного режима

Windows

Вы устанавливаете Git на Windows как Git Bash. С помощью Git Bash вы можете использовать команды, аналогичные терминалу Linux. Чтобы загрузить и установить:

  1. Перейдите на официальный сайт Git.

  2. Найдите кнопку Download для загрузки расширения .exe.

  3. После загрузки на локальной машине запустите файл .exe и следуйте всем подсказкам для установки.

  4. После установки вы можете открыть Git Bash для настройки (которая точно такая же, как описана для linux).

Настройка учетной записи GitHub

Вам необходимо создать учетную запись на GitHub, чтобы получить доступ к его функциям. Чтобы создать учетную запись:

  • Посетите официальный сайт GitHub и нажмите на кнопку «Регистрация».

  • Добавьте такие данные, как имя, адрес электронной почты и пароль.

После этого вы можете приступать к работе.

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

Чтобы сгенерировать SSH-ключ:

  • Откройте Терминал

  • Затем введите команду

$ ssh-keygen -t ed25519 -C "davidadediji@gmail.com"
Войти в полноэкранный режим Выйти из полноэкранного режима

и нажмите enter, чтобы получить следующее приглашение

Enter file in which to save the key (/home/david/.ssh/id_ed25519): 
Ввести полноэкранный режим Выйти из полноэкранного режима

и нажмите клавишу Enter.

Примечание: вы можете оставить его пустым и использовать файл .ssh/id_ed25519 по умолчанию.

  • После нажатия кнопки enter появится запрос на ввод парольной фразы. Вы можете добавить ее или оставить пустой. После ввода вы получите следующий ответ

  • Далее запустите ssh-агент в фоновом режиме командой:
eval "$(ssh-agent -s)"
Войти в полноэкранный режим Выйти из полноэкранного режима

Вы получите ответ, подобный этому:

Agent pid 32602
Вход в полноэкранный режим Выйти из полноэкранного режима
  • Затем добавьте ваш закрытый ключ SSH в ssh-agent. используйте .ssh/id_ed25519, если вы оставили его по умолчанию. Однако если вы создали ключ с другим именем или добавляете существующий ключ с другим именем, замените id_ed25519 в команде на имя файла закрытого ключа.
$ ssh-add ~/.ssh/id_ed25519
Вход в полноэкранный режим Выход из полноэкранного режима
  • Затем пришло время добавить ваш открытый ключ в учетную запись GitHub. Используйте команду
cat ~/.ssh/id_rsa.pub
Войти в полноэкранный режим Выйти из полноэкранного режима

для получения открытого ключа, после того как открытый ключ будет сгенерирован, скопируйте его и войдите в свой аккаунт GitHub.

  • Открыв свой аккаунт GitHub, нажмите на аватар своего профиля и перейдите к настройкам.

  • На странице настроек нажмите на SSH и GPG Keys с левой стороны.

  • В разделе ключей SSH нажмите на кнопку Новые ключи SSH.

  • На странице Новый ключ добавьте название в поле Название и добавьте скопированный вами открытый ключ в поле Ключ.


Затем нажмите на кнопку Добавить новый ключ.

  • Вы будете перенаправлены на страницу подтверждения пароля. Подтвердите свой пароль и все.

Взаимодействие с Git и GitHub Repo

Чтобы начать отправлять содержимое или код на Github из Git, создайте каталог на своем компьютере.
Обратите внимание: локальный репозиторий относится к Git, а удаленный репозиторий (тот, что находится в облаке) — к GitHub.

Локальный репозиторий

В рабочем каталоге вашего компьютера выполните команду:

$ mkdir git-github-demo && cd git-github-demo
Войти в полноэкранный режим Выйти из полноэкранного режима

Приведенная выше команда позволяет создать директорию и сразу же перейти в нее.

Следующим шагом будет инициализация git-репозитория в рабочем каталоге с помощью команды

$ git init
Войти в полноэкранный режим Выйти из полноэкранного режима

Эта команда создает файл .git (скрытый) внутри репозитория. В свою очередь, он служит идентификатором и позволяет отслеживать частые изменения в папке.

Вы можете перейти к созданию нового файла (любое расширение, например .txt, .py, .html). Например, вы можете создать файл index.html с помощью команды

$ touch index.html
Войти в полноэкранный режим Выйти из полноэкранного режима

Вы можете добавить изменения в файл, а затем перейти к добавлению файла в область постановки с помощью команды

$ git add index.html
Войти в полноэкранный режим Выйти из полноэкранного режима

Если у вас несколько файлов для добавления в область постановки, используйте команду

$ git add file1 file2 file3 ...
Войти в полноэкранный режим Выйти из полноэкранного режима
$ git add .
Войти в полноэкранный режим Выйти из полноэкранного режима

чтобы добавить все файлы в область постановки от корня.

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

$ git commit -m "commit message here"
Войти в полноэкранный режим Выйти из полноэкранного режима

все файлы в вашей области постановки будут добавлены в историю фиксации вместе с сообщениями о фиксации. Убедитесь, что вы добавили соответствующее сообщение о фиксации.

Чтобы просмотреть всю историю фиксации, используйте команду

$ git log
Войти в полноэкранный режим Выйти из полноэкранного режима

Эта команда отличается от команды

$ git status
Войти в полноэкранный режим Выход из полноэкранного режима

В то время как git log позволяет вам просматривать историю фиксаций, git status отслеживает, какие файлы находятся в вашей зоне хранения и изменения, которые вы делаете в каждом файле.

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

Чтобы создать новую ветвь, выполните команду

$ git branch <branch_name here>
Войти в полноэкранный режим Выйти из полноэкранного режима

Команда

$ git branch
Войти в полноэкранный режим Выйти из полноэкранного режима

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

$ git checkout <some branch name here>
Войти в полноэкранный режим Выйти из полноэкранного режима

Отсюда вы можете добавлять новые файлы и делать некоторые коммиты.
Однако эта новая ветвь, в которую вы добавили новые изменения, будет находиться впереди основной ветви.

Чтобы перенести все изменения, сделанные в new_branch, в основную ветвь, нужно использовать команду git merge.

Но сначала вам нужно перейти в мастер-ветку с помощью команды

$ git checkout master
Войти в полноэкранный режим Выйти из полноэкранного режима

Затем выполните команду:

$ git merge <new_branch_name>
Войти в полноэкранный режим Выйти из полноэкранного режима

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

Я надеюсь рассказать об этом в одной из следующих статей.

Удаленный репозиторий

Удаленный репозиторий здесь известен как GitHub (в настоящее время принадлежит Microsoft). Чтобы воспользоваться командами и инструкциями, приведенными здесь, убедитесь, что вы создали учетную запись GitHub.
Посетите раздел Настройка учетной записи GitHub.

Итак, чтобы создать свой удаленный репозиторий, выполните следующие действия:

  1. Перейдите на официальную веб-страницу GitHub.
  2. Чтобы получить доступ к своему аккаунту, нажмите на кнопку входа в систему

  3. Введите свой email и пароль

  4. Нажмите на кнопку входа

  5. Как только вы окажетесь на странице, нажмите на значок «Создать новый» +

  6. Нажмите на Новый репозиторий

  7. Введите название хранилища

  8. В качестве опции вы можете дать своему хранилищу новое описание

  9. Затем нажмите на кнопку ‘Создать репозиторий’.

  10. Нажмите на значок Копировать, чтобы скопировать ссылку на репозиторий в буфер обмена

  11. Вернитесь в терминал и введите команду

$ git remote add origin [repository url you copied]
Войти в полноэкранный режим Выйти из полноэкранного режима

Однако прежде чем перейти к следующему шагу, вам нужно добавить удаленную ветку по умолчанию main через ваше локальное репо с помощью команды:

$ git branch -M main
Enter fullscreen mode Выйти из полноэкранного режима

Это связано с тем, что GitHub не распознает master как ветку по умолчанию.

  1. Как только это будет установлено, используйте команду:
$ git push -u origin main
Войти в полноэкранный режим Выйти из полноэкранного режима

Чтобы перенести ваш код в удаленную основную ветку

Другие команды

$ git pull origin main
Войти в полноэкранный режим Выйти из полноэкранного режима

git pull используется для извлечения последних изменений из удаленного репозитория в локальный репозиторий

$ git clone [Link to repository]
Войти в полноэкранный режим Выйти из полноэкранного режима

git clone используется для клонирования существующего удаленного репозитория на ваш компьютер.

Создание Pull-запроса

Создание Pull-запроса позволяет внести свой вклад в чужой проект. Все, что вам нужно сделать, это
скопировать в свой репозиторий, клонировать его, внести изменения и отправить их в виде запроса на исправление.
Вот как этот процесс выглядит более наглядно:

  • Найдите проект, в который вы хотите внести свой вклад. Для меня это репо проекта генератора паролей
    chryz-code/Password-generators, который я форкнул. Кнопка форка находится в правом верхнем углу.

  • Форк этого репозитория создает копию в моем удаленном репозитории.
    Репозиторий выглядит следующим образом

davidadediji/Password-generators
Вход в полноэкранный режим Выйти из полноэкранного режима

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

$ git clone https://github.com/davidadediji/Password-generators.git
Войти в полноэкранный режим Выйти из полноэкранного режима

  • Когда репозиторий клонирован, следующий шаг — создание новой ветки
$ git checkout -b new_branch
Войти в полноэкранный режим Выйти из полноэкранного режима

  • Подключите новый пульт для репо из восходящего потока. Восходящее репо — это исходное репо, с которого был сделан форк. То есть
https://github.com/chryz-code/Password-generators.git
Войти в полноэкранный режим Выйти из полноэкранного режима

с помощью команды

$ git remote add upstream https://github.com/chryz-code/Password-generators.git
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Затем я открываю рабочий каталог репозитория, чтобы внести изменения в некоторые из файлов, а затем добавляю их в свою область постановки с помощью команды.
$ git add file
Войти в полноэкранный режим Выйти из полноэкранного режима
  • С помощью команды
$ git status
Войти в полноэкранный режим Выйти из полноэкранного режима

Я смог отследить, что изменилось в моей рабочей директории.

  • Измененный файл «password-generator.py» добавлен в область постановки с помощью команды:
$ git add password-generator.py
Войти в полноэкранный режим Выйти из полноэкранного режима
  • Затем настало время зафиксировать изменения, внесенные в staging area, в новой ветке с помощью команды:
$ git commit -m "modified a file"
Enter fullscreen mode Выйти из полноэкранного режима

  • Затем перенесите все изменения в удаленную новую ветку командой
$ git push -u origin new_branch
Войти в полноэкранный режим Выйти из полноэкранного режима

  • Перейдя в исходное удаленное репо, вы увидите новую кнопку «compare and pull request».

  • Нажмите на нее, и вы будете направлены на страницу, где вы напишите комментарий и, наконец, Create Pull Request

  • И вуаля! Успешно создан запрос на вытягивание.

Заключение

Здесь я объяснил основы Git и GitHub, чтобы вы могли начать вносить свой вклад.
Совсем скоро я опубликую некоторые продвинутые концепции в Git.
Следите за новостями.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *