Git

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

Git — это одна из самых популярных систем контроля версий. И, тем не менее, она повергает новичков-разработчиков в шок — поверьте на слово, сам прошел через это. К слову сказать, я побаивался Git на протяжении нескольких лет.

Если вы опытный разработчик и не дрожите от одного упоминания Git, то смело закрывайте эту статью и выбирайте что-то потруднее. Но если вы новичок в Git или не уверены в своих знаниях, то посвятите пару минут своего времени изучению основных, но весьма важных, аспектов Git.

Вот о чем поговорим:

  1. Git clone.
  2. Git checkout.
  3. Git pull.
  4. Git add и commit.
  5. Git stash и merge.
  6. Git push.

Git clone

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

Допустим, вы захотели клонировать репозиторий со скриншота, представленного выше. Для начала скопируйте ссылку клонирования (см. выше). Затем откройте терминал и через cd перейдите в область на компьютере, куда будут копироваться файлы. Если вы хотите клонировать ветку master, то напечатайте git clone и вставьте ссылку, как это показано ниже:

git clone https://github.com/JamesOkunlade/old-apple.git

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

git clone https://github.com/JamesOkunlade/old-apple.git -b branch-name

Git checkout

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

В процессе работы возникает необходимость перехода в отдельную ветку репозитория. Это можно сделать следующей командой.

Если ветка уже создана:

git checkout branch-name

Если вы создаете новую ветку опций:

git checkout -b branch-name

Git pull

Ваша команда или коллега-разработчик могут изменять ветки репозитория. И каждый раз перед написанием кода вы должны вливать эти изменения в ветку, с которой будете работать. Перейдите в ветку через checkout и выполните команду git pull. Последние изменения будут влиты в локальный репозиторий.

Git add и commit

Команды add и commit почти всегда неразлучны. Это как захват и сохранение данных. Вы не сможете ничего сохранить, пока не захватите нужные данные. Таким образом, команда add всегда предшествуетcommit. С командой add вы указываете определенный файл, который требуется захватить в текущем состоянии, а commitсохраняет его копию.

Для захвата всех файлов (кроме исключений изgit ignore) понадобится git add. Захват текущего состояния отдельно взятого файла (к примеру, index.html) делается через git add index.html.

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

git commit -m ‘commit message’

Сообщение в коммите должно пояснить специфику сохраняемых снимков. Например:

git add index.html

git commit -m ‘создание кнопки формы опции’

Две команды можно объединить через оператор&&:

git add index.html && git commit -m ‘создание html структуры футера’

Git stash и merge

git stash сохранит все изменения ветки, которые вы не хотите коммитить. Это значит, что вы можете ждать, пока другой разработчик закоммитит и вольет копию своих изменений в ветку, и параллельно экспериментировать с той же веткой. Git всячески это приветствует. Если вы хотите просто влить новые изменения в локальный репозиторий, но не выполнять слияния с веткой, то просто сохраните эти изменения черезstash. git stash сохранит копию этих изменений. Их можно будет просмотреть через список git stash.

git merge – это команда, которая сливает два разных снимка репозитория. Вы можете сливать разные снимки изменений одной и той же ветви, сделанные разными разработчиками. Либо же можно сливать разные снимки разных веток.

При переходе в ветку master команда git merge сливает ветку dev с master и наоборот.

Git push

По аналогии с тем, как вы сохраняете снимки в Google Фото, и их видят другие люди, имеющие доступ, git push отправляет локальный репозиторий на сервер, доступный другим пользователям.

git push -u origin branch-name

Перевод статьи James Okunlade: The essentials of Git explained in five minutes