Mac os git commit

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 используются для самых разных целей:

  • расшаривания кода и другой информации (например, список интересного в телеграм)
  • совместной разработки, обсуждения и ведения проектов (не только связанных с кодом, например, карта навыков и развития тим-лида)
  • и даже для ведения тасок (во встроенном таск-треккере)

При этом, работа непосредственно с кодом и файлами, ведётся локально — в папках проектов на компе. Для этого, папки связываются с удалёнными репозиториями.

Читайте также:  Windows 10 дата продаж

Порядок действий такой:

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

Читайте также:  Рекомендуемые темы для windows 10

Чтобы связать новый проект на 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 регистрируются (добавляются) изменения в папке проекта. В больших проектах, при изменении одного файла, обычно добавляют только его (имя файла с расширением, без скобок):

Следующая команда регистрирует (добавляет) сразу все изменения. В небольших проектах можно всегда использовать её, т.к. это проще и быстрее:

Читайте также:  Windows system information bios

Чтобы убедиться, что все изменения добавлены, можно снова выполнить 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 используется встроенный редактор. Порядок действий такой:

  1. Вносятся изменения в файле;
  2. Добавляется описание коммита;
  3. Сохраняется коммит.

После сохранения, коммит добавляется в проект и сразу примеряются все изменения.

На Гитхабе хранится история всех коммитов и подробная информация по ним. Если зайти в любой коммит, можно посмотреть какие правки были сделаны. Удалённые строки подсвечиваются красным, добавленные — зелёным.

Обновление локального репозитория

Для обновления локального репозитория, после любых изменений проекта на Гитхабе, в Терминале (надо находится в папке проекта) используется команда:

В результате выполнения команды, в Терминале отображаются изменения, которые мы забираем с удалённого репозитория. По завершению работы команды git pull , все файлы проекта на компе обновляются до состояния удалённого репозитория. Можно убедиться в этом, проверив файл REAMDE в локальной папке проекта.

Чтобы после изменения проекта на Гитхабе, актуализировать проект на компе, надо:

  • в Терминале, находясь в папке проекта выполнить git push

📌 Список команд для работы в Терминале с Git и GitHub

Источник

Оцените статью