- Git + GitHub tutorial. Основы работы с GitHub на mac 💻
- В статье подробно рассматривается как создать удалённый репозиторий на GitHub и как работать с GitHub локально, синхронизируя все изменения.
- Подготовка к работе 🤓
- Настройка Git
- Создание удалённого репозитория
- Создание и настройка
- Страница репозитория
- Рабочая папка для проектов
- Клонирование удалённого репозитория
- Синхронизация локальных изменений с удалённым репозиторием на GitHub
- Изменения в проекте
- Git flow
- Информационная команда git status
- Команды git add и git commit
- git add (добавить)
- git commit (закоммитить)
- git push (запушить)
- Обновление локального репозитория, после изменений проекта на GitHub
- Редактирование файлов проекта на сайте удалённого репозитория
- Обновление локального репозитория
- 📌 Список команд для работы в Терминале с Git и GitHub
Git + GitHub tutorial. Основы работы с GitHub на mac 💻
В статье подробно рассматривается как создать удалённый репозиторий на GitHub и как работать с GitHub локально, синхронизируя все изменения.
Jun 11, 2019 · 10 min read
☝🏻 Этот материал подойдёт тем, кто уже знает, зачем нужны Git и GitHub, но ещё не пользовался ими.
Всего за 15–20 минут (время прочтения и повторения описанных действий) вы научитесь:
- ✅ работать с Git в Терминале на macOS
- ✅ создавать удалённые репозитории на GitHub
- ✅ и главное — связывать локальные репозитории с удалёнными
Я собрал этот материал из нескольких курсов и гайдов для разных git-сервисов. Выбрал лучшее, убрал лишнее и адаптировал его для GitHub и mac. Так что вы получите максимум пользы, за минимум времени.
По мере прочтения, рекомендуется сразу повторять описанные шаги. Так вы лучше усвоите материал, заведёте аккаунты в нужных системах и получите практику работы в Терминале и с GitHub.
Подготовка к работе 🤓
Для работы потребуются:
- аккаунт на GitHub
- Терминал (предустановлен на macOS)
- Git — можно установить отсюда
☝🏻 Для систем Git есть различные графические клиенты. У GitHub есть свой. Позже, вы сможете выбрать и использовать один из них, но в этой инструкции, для лучшего погружения и практики, используется Терминал.
Настройка Git
Если вы ещё не пользовалис ь Git, то для начала необходимо зарегистрироваться как пользователь системы — добавить в систему Имя пользователя и e-mail. Запустите Терминал, и выполните поочерёдно две команды (имя и имейл вписываются без скобок):
Для проверки можно воспользоваться этими командами, они покажут какие данные внесены в систему:
Терминал закрывать не надо, он потребуется для дальнейшей работы.
Создание удалённого репозитория
Удалённый репозиторий на GitHub — это облако, в котором хранятся файлы проекта и история их изменений. Локально же — это просто папка проекта на компе.
Репозитории на GitHub используются для самых разных целей:
- расшаривания кода и другой информации (например, список интересного в телеграм)
- совместной разработки, обсуждения и ведения проектов (не только связанных с кодом, например, карта навыков и развития тим-лида)
- и даже для ведения тасок (во встроенном таск-треккере)
При этом, работа непосредственно с кодом и файлами, ведётся локально — в папках проектов на компе. Для этого, папки связываются с удалёнными репозиториями.
Порядок действий такой:
- создаётся проект на github.com
- клонируется на комп
☝🏻 Можно делать и наоборот, но приведённая последовательность больше подходит для новичков.
Для каждого проекта лучше создавать отдельный репозиторий на Github. Ниже описано создание удалённого репозитория и локальной папки для тестового проекта hello-world, и их синхронизация.
Создание и настройка
Новый репозиторий на GitHub можно создать, нажав в правом верхнем углу на + и выбрав New repository в выпадающем меню:
Откроется страница настройки нового репозитория (скрин ниже), на которой:
- вводится имя репозитория
- добавляется краткое описание проекта (не обязательно)
- выбирается тип репозитория
☝🏻 На GitHub есть два типа репозиториев — Public (будет виден всем, на странице вашего аккаунта, и все смогут писать коммиты), Private (будет виден только вам и тем, кому вы предоставите доступ в настройках репозитория).
- добавляется файл README (чекбокс Initialize this repository with a README)
☝🏻 Для Public репозиториев принято добавлять файл README с описанием проекта. В файл добавится описание из поля Description. А вся информация из этого файла будет отображаться на странице проекта.
- при необходимости можно добавить файл .gitignore (это уже для проектов посложнее, и в рамках этого материала не рассматривается)
- при необходимости, добавляются лицензии (например, на используемые шрифты)
После такой элементарной настройки, уже можно создать репозиторий ⟶ зелёная кнопка Create repository.
Страница репозитория
На открывшейся странице созданного репозитория, всё что нам нужно по проекту, находится на вкладке Code. Тут же выводится содержание файла README.
На момент создания, у проекта есть один файл README.md, один commit (запись о факте создания репозитория) и одна ветка (главная ветка master).
☝🏻 Для работы продакта, или аналитика, зачастую, достаточно основной ветки master. Дополнительные ветки создаются для сложных проектов, или для совместной работы. Использование дополнительных веток будет рассмотрено в отдельном материале. Не забудьте нажать Follow.
Рабочая папка для проектов
Скорее всего, у вас уже есть папка для проектов. Если ещё нет, то создайте. Далее, необходимо будет перейти в неё в Терминале (описано ниже).
☝🏻 Папку самого проекта создавать не нужно, она клонируется из GitHub.
На начальном этапе, работать с файлами и папками привычнее в Finder. Быстро перейти сразу в папку для проектов (после её создания) в Терминале, можно прямо из Finder, правым кликом по папке для проектов ⟶ Службы ⟶ Новая вкладка Терминала по адресу папки.
Откроется вкладка Терминала с нужным нам адресом.
Клонирование удалённого репозитория
Чтобы работать с проектом локально, и при этом, все изменения синхронизировать с удалённым репозиторием, необходимо клонировать GitHub-проект.
Для этого на странице проекта на GitHub необходимо нажать кнопку Clone or download и скопировать адрес репозитория.
Далее, в Терминале (в той вкладке, которая открылась из Finder) выполняется команда (используя скопированный URL без скобок):
По завершению отработки команды, Терминал выдаст done — папка проекта, которую мы клонировали с GitHub появилась в папке для проектов на компе. Теперь можно работать с проектом локально — создавать файлы, редактировать их и все изменения синхронизировать с удалённым репозиторием.
Чтобы связать новый проект на GitHub с папкой проекта на компе, надо:
- создать проект на GitHub (новый репозиторий) и скопировать его УРЛ
- перейти в Терминале в общую папку для проектов (папку самого проекта создавать не надо)
- клонировать проект с GitHub — git clone (URL без скобок)
☝🏻 Таким способом можно скопировать любой проект с Гитхаба себе на комп
Синхронизация локальных изменений с удалённым репозиторием на GitHub
Изменения в проекте
Для демонстрации синхронизации я сделаю два изменения:
- скорректирую файл README
- добавлю картинку в папку проекта
Повторите эти действия, для наработки навыка использования Git.
В файл README.md добавлена строка “My furst commit”. Сделана опечатка, которая будет исправлена позже, когда будет рассматриваться изменение файлов в репозитории GitHub.
В папку проекта добавлена картинка project-page.png (один из скриншотов из этого поста).
Git flow
Чтобы локальные изменения (в данном примере — обновление файла и добавление картинки) синхронизировались с удалённым репозиторием, необходимо их сначала добавить, потом закоммитить, а потом запушить.
Основные действия — это коммит и пуш. А git add — всего лишь служебная команда для регистрации/добавления изменений.
☝🏻 Commit — это точка сохранения проекта, в которую можно будет вернуться, если что-то пойдёт не так (как сохранение в игре). Эти сохранения и синхронизируются между локальным и удалённым репозиториями.
Push — это внесение закоммиченых локальных изменений в проект на удалённом репозитории.
Подробно о каждом действии — далее.
Информационная команда git status
Все манипуляции с проектом делаются в папке проекта. Для этого, необходимо открыть её в Терминале. Можно использовать приведённый выше способ (правый клик по папке в Finder). Или, если в Терминале уже открыта папка для проектов, можно переместиться в папку проекта командой (имя папки проекта вписывается без скобок):
Команды git add и git commit
В Терминале перейдём в папку проекта (все изменения с проектом делаются в папке проекта). Для отслеживания изменений используется команда:
📌 Все используемые git и github команды с их описанием будут приведены в отдельном блоке в конце материала.
Для отслеживания изменений в проекте используется команда:
☝🏻 git status можно не использовать, но хорошо знать, что такая возможность есть, и можно в любой момент посмотреть информацию о состоянии проекта.
Результат работы команды — вывод информации о проекте. Незарегистрированные изменения выделены красным. Структура информации следующая:
- On branch master — указана текущая ветка
☝🏻 Это будет полезно при работе с несколькими ветками.
- Changes not staged for commit — есть незарегистрированные изменения (modified: README.md)
- Untracked files — есть новые файлы (project-page.png)
- no changes added to commit — в данный момент нечего коммитить
Тут же, в круглых скобках git сам даёт подсказки, что можно делать дальше: use git add …
git add (добавить)
Командой git add регистрируются (добавляются) изменения в папке проекта. В больших проектах, при изменении одного файла, обычно добавляют только его (имя файла с расширением, без скобок):
Следующая команда регистрирует (добавляет) сразу все изменения. В небольших проектах можно всегда использовать её, т.к. это проще и быстрее:
Чтобы убедиться, что все изменения добавлены, можно снова выполнить git status (это не обязательно).
git commit (закоммитить)
Для создания коммита, и добавления к нему комментария используется расширенная команда (комментарий пишется как в примере — в кавычках):
☝🏻 Коммиты, обычно, делаются после какого то блока изменений — добавлен/переписан блок кода, или новый блок информации. Коммиты хорошо сопровождать описанием о проделанных изменениях.
Теперь git status показывает, что изменений больше нет. И что есть один коммит, не добавленный в ветку.
git push (запушить)
Чтобы запушить локальные изменения на удалённый репозиторий, используется команда git push . Или её расширенный вариант, с указанием ветки, куда пушатся изменения:
☝🏻 При первом использовании git push , Git запросит логин и пароль от аккаунта на GitHub. При вводе пароля, никакие символы не появляются и курсор не сдвигается — это нормально, просто введите полностью и нажмите энтер. Если пароль введён без ошибок — всё сработает.
В git status , теперь будет информация, что никаких новых изменений нет (nothing to commit), и коммитить нечего.
Теперь проект на Гитхабе актуальный — тут отобразились все изменения, которые были сделаны локально: добавился один commit, добавился файл, изменился README.
Чтобы после изменения проекта, отправить локальные правки на удалённый репозиторий, надо:
- перейти в Терминале в папку самого проекта
- зарегистрировать изменения — git add .
- создать коммит — git commit -m «Комментарий»
- запушить коммит на GitHub — git push origin master
☝🏻 Для отслеживания статуса изменений в проекте используется команда git status
Обновление локального репозитория, после изменений проекта на GitHub
Бывает так, что файлы проекта правятся прямо на сайте GitHub. Или кто-то из участников проекта запушил новые изменения. В обоих случаях, необходимо получить эти изменения и обновить локальный репозиторий.
Редактирование файлов проекта на сайте удалённого репозитория
Для демонстрации синхронизации я изменю файл README на github.com.
☝🏻 Все изменения в удалённом репозитории являются коммитами. Т.е. при сохранении изменений файла, сразу добавляется коммит в проекте на GitHub.
Для редактирования файлов на сайте GitHub используется встроенный редактор. Порядок действий такой:
- Вносятся изменения в файле;
- Добавляется описание коммита;
- Сохраняется коммит.
После сохранения, коммит добавляется в проект и сразу примеряются все изменения.
На Гитхабе хранится история всех коммитов и подробная информация по ним. Если зайти в любой коммит, можно посмотреть какие правки были сделаны. Удалённые строки подсвечиваются красным, добавленные — зелёным.
Обновление локального репозитория
Для обновления локального репозитория, после любых изменений проекта на Гитхабе, в Терминале (надо находится в папке проекта) используется команда:
В результате выполнения команды, в Терминале отображаются изменения, которые мы забираем с удалённого репозитория. По завершению работы команды git pull , все файлы проекта на компе обновляются до состояния удалённого репозитория. Можно убедиться в этом, проверив файл REAMDE в локальной папке проекта.
Чтобы после изменения проекта на Гитхабе, актуализировать проект на компе, надо:
- в Терминале, находясь в папке проекта выполнить git push
📌 Список команд для работы в Терминале с Git и GitHub
Источник