Гит — это система контроля версий

… что значит для вас примерно нихуя. Так что давайте по-другому.

Во-первых, Гитом пользуются через Терминал. SourceTree и прочее это от лукавого.

UPD: проще всего через терминал, но для сложных задач GUI может удобнее. Никита Голоденко описал подробнее.

Пользуются через Терминал потому что там всего 6 команд. Остальные не нужны вам 99% времени.

Так вот, запоминайте терминологию.

Во-первых, репозиторий — место, где хранится ваш код.

Во-вторых, пуш и пулл—пуллом вы скачиваете изменения из репозитория (если туда кто-то пушнул свои), ну а пуш… в принципе, вы догадались.

В-третьих, коммит. Если вы думали, что вы просто пушите время от времени код в репозиторий, то ваще-то нет. Сначала вы его коммитите в локальную копию, а потом пушите уже её.

В-четвёртых, это бранчи и мерджинг. Гит работает как дерево — у каждой ветки могут быть свои ветки. Ветка это бранч, конечно.

Изначально у вас есть бранч master, но лучше всего сразу завести ещё и develop — там будет основная разработка, которую после завершения вы мерджите в мастер. Сливаете, типа.

Бранчей может быть много, но лучше всего почитать про git flow: это когда бранчи бьются на ветки feat/{feature} для фичи и fix/{fix} для исправлений. Остальным я обычно не пользуюсь, как и многие другие.

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

Летс ду ит

Теории достаточно, пробуем.

  1. заводите проект на Гитхабе, например, testtesttest;
  2. делаете клон — клонируете репозиторий к себе, git clone https://github.com/evgenyrodionov/testtesttest.git;
  3. заходите в директорию testtesttest и создаёте файл readme.md, туда что-нибудь пишете, например, что Родионов молодец и делает заебатые вещи;
  4. теперь в консоли (если вы находитесь в директории) выполняете команду git status;
  5. добавляете файлы для коммита через git add readme.md;
  6. ещё раз проверяете через git status, если надо, а потом коммитите через git commit -am 'init commit', где флаг -a это опять же “добавить все файлы”, а -m это сообщение коммита (оно и идёт в кавычках);
  7. пушите в мастер: git push origin master;
  8. открываете свой репозиторий на Гитхабе и проверяете коммиты;
  9. если кто-то пушнул в репозиторий, то делаете git pull;

Ок, теперь давайте попробуем посложнее: сделаем отдельную ветку и через пуллреквест её смерджим.

  1. в консоли создаём новый бранч через git checkout -b develop;
  2. добавляем файл index.html, потом его всё так же коммитим и пушим в репозиторий;
  3. идём в репозиторий на Гитхабе и создаём пуллреквест, нажимаем кнопку “merge”;

Да, всё так просто! Можно было, кстати, и руками:

  1. возвращаемся в мастер: git checkout master;
  2. мерджим девелоп в мастер: git merge develop;
  3. пушим: git push.

Альясы

Гит по-умолчанию бесит своими длинными командами, поэтому там можно прописать альясы. Открывайте свой ~/.gitconfig и добавляете там вот этот блок:

SSH

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

  1. заведите себе SSH-ключ: ssh-keygen -t rsa -b 4096;
  2. при создании спросит про passphrase — это пароль от ключа, ❗️❗️❗️обязательно ставьте ❗️❗️❗️
  3. теперь в директории ~/.ssh у вас два файла id_rsa и id_rsa.pub;
  4. id_rsa это ваш ПРИВАТНЫЙ ключ, который НИКОМУ не надо НИКОГДА давать;
  5. id_rsa.pub это публичный ключ, его вы копируете (это обычный текст, поэтому можете открыть редактором или просто cat ~/.ssh/id_rsa.pub или даже pbcopy < ~/.ssh/id_rsa.pub);
  6. ну и вставляете в настройках Гитхаба, Битбакета, Гитлаба и где угодно ещё.

Ну всё. Основная боль начинается при мерджинге веток, а так Гит очень даже простой. Всегда рекомендую пройти Git How To, кстати: https://githowto.com/. Хороший туториал.

Кстати, подписывайтесь на мой канал про фронтэнд в телеграме.

--

--