Git — це найпопулярніша CVS
Він швидкий і прозорий, підходить як для маленьких, так і великих проєктів.
Якщо ви тільки вчитеся програмувати — вивчайте Git та викладайте код на GitHub щодня. Порада незмінна — які б мови чи фреймворки не вивчали. Далі надаємо слово фронтенд-розробниці у Wix Анастасії Гордєєвій.
Для того, щоб додати гіт до свого проекту, треба відкрити термінал в корні проекту і виконати команду git init
. Вона створює папку .git
, яка має в собі сховище та деякі інші конфігурації для гіту.
Ці конфігурації ми можемо налаштовувати. Наприклад, можемо вказати своє їм’я та пошту, щоб потім можна було зрозуміти, що це саме ми внесли певні зміни в коді. Це робиться наступними командами:
git config user.name
— ваше Ім’я – імя автора змін;git config user.email
— ваша пошта.Для того, щоб подивитися конфігурацію гіта, виконайте у терміналі отаку команду:git config --list
.
Git дозволяє ставити конфігурації на різних рівнях:
--system
);--global
);--local
– стоїть по дефолту);Локальні налаштування живуть в папці проекту в файлі .git/config
. Глобальні — в домашній дирикторії в файлі ~/.gitconfig
.
Системні зберігаються в /etc/gitconfig
. Якщо гіту треба знайти значення якогось параметра, він спочатку шукає його локально, потім глобально на рівні юзера, а потім на рівні системи.
Тобто, нам можливо було б краще задати ім’я та пошту на рівні користувача, щоб вони відображались в усіх наших проектах: git config --global user.name
. Зайві локальні параметри можна прибрати за допомогою:
git config --unset user.name
;git config --remove-section user
(видаляє весь неймспейс user, а не тільки user.name).Або можна відкрити файл конфігурації і відредагувати його напряму.
В гіті також дуже зручно створювати аліаси
Як створювати аліаси:
git config --global alias.c ‘config –global’
— тепер ми можемо викликати цю команду просто через git c;git config alias.ac ‘!git add .; git commit -m’
— тепер така велика команда викликається просто через git ac;git config --global --unset alias.ac
– прибираємо аліас.Ми працювали над проектом і хочемо зберегти змінені файли. Для цього треба додати їх до гіт. Це робиться в два етапи:
Index
– список файлів в робочій директорії, які гіт відслідковує. Також індекс є проміжним сховищем змін. Коли ми хочемо внести якісь зміни в гіт, ми спочатку додаємо їх в індекс.Repository
– повна історія розробки проекту. Щоб гіт почав відслідковувати файл: git add fileName.js
(додає файл в index гіту).Щоб остаточно зберегти зміни в repository: git commit
Тепер гіт очікує від нас опис коміту, тобто розповідь про зміни, які ми внесли.
Перша строчка є заголовком коміту — вона повинна стисло але повно відображати суть змін. Після цього ми залишаємо пусту строку і можемо додати ще детальний опис. Всі строчки, що починаються з # в текстовому редакторі (або терміналі), що відкрився, є коментарями. Вони автоматично згенеровані гітом як підказки і будуть проігноровані, коли ми збережемо опис коміту. Для збереження, нам просто треба зберегти текст в редакторі і закрити його.
Після цього в терміналі ми побачимо короткий опис коміту та його хеш. Це строка-ідентифікатор коміту, по якому ми завжди зможемо побачити, які зміни були внесені на цьому етапі.
Заголовок коміту можна також додавати прямо в терміналі. Для цього виконаємо команду git commit -m ‘тут наш опис’
.
В гіт можна слідкувати за статусом проекту та змін за допомогою команди: git status
.
Вона може вивести в терміналі декілька меседжів.
nothing to commit, working tree clean
. Це означає, що поточний стан робочої директорії, індекса і репозиторія відповідають один одному. Тобто в гіт вже збережені всі стани проекту.
untracked files
— гіт не відслідковує якісь зміни, треба виконати команду гіт ад
changes to be committed
— гід відслідковує зміни, але вони ще не збережені в репозиторій. Треба виконати команду гіт коміт.
Якщо ми створимо пусту папку та захочему її додати в гіт – нічого не трапиться. Історично так скалося, що гіт не бачить пустих директорій. Зазвичай, якщо треба додати пусту папку в гіт, в ній створюють файл .gitkeep
.
Для того, щоб додати всі модифіковані файли в індекс гіту одразу, ми можемо виконати наступну команду: git add
.
Для того, щоб зайві файли (конфігурації, нод модулі, ключі) не додавалися цією командою, в корні проекта можна створити файл .gitignore
. Тут ми вказуєм, які файли та директорії ігнорувать, наприклад пишемо ‘node_modules/’
. Навіть якщо якийсь файл лежить в .gitignore
, ми можемо заставити гіт його додати за допомогою прапорця --force
(або -f).
Після того, як ми додали в індекс всі файли, які хочемо зберегти в гіт – ми робимо коміт. Важливо, щоб один коміт мав одну конкретну ціль. Наприклад: додавання лоадеру, фікс бага, реверт фічі. Тобто, як правило, гарні коміти — невеликі і атомарні.
В різних командах є різні конвеншони для назви комітів. Я зазвичай користуюсь цим.
Якщо нам не потрібно зберігати зміни в два етапи (тобто спочатку додавати в індекс через git add, а потім комітити через git commit
) – ми можемо це зробити однією командою, додавши прапорець -а
:
git commit -am ‘опис коміту’
Але тут важливо зазначити, що проапорець -а
ігнорує файли, які ще не відслідковуються гітом (тобто нові файли, що ще не були додані в індекс).
Гілка — це ізольований потік розробки, в якому можна робити коміти так, щоб вони не впливали на інші потоки.
Зазвичай, основна гілка — це master. Додаткові гілки створюються для розробки окремого функціоналу, для іншого розробника, для релізу. Потім зміни в них ми можемо або об’єднати з master, або з легкістю видалити без впливу на основний потік розробки.
У папці .git є файл HEAD, який відслідковує, на якій гілці ми знаходимось зараз.
Для перегляду поточних гілок, скористайтеся командою git branch
.
Для того, щоб створити нову гілку: git branch назва-гілки
.
Щоб розробляти в новій гілці, нам треба на неї переключитися (зробити так, щоб на неї вказував HEAD), виконавши команду git checkout назва-гілки
.
Ці дві команди можна об’єднати в одну: git checkout -b назва-гілки
.
Часто виникають ситуації, що ми робили зміни в одній гілці, а нам терміново треба переключитися на іншу. Що робити з незакоміченими змінами?
Якщо нам не треба зберігати ці зміни, можна виконати команду git checkout -f master
.
А якщо зміни потрібно зберегти, скористайтеся командою git stash
.
Ця команда збирає незакомічені зміни і архівує в гіт. Для того, щоб їх повернути (це можна зробити в будь-якій гілці): git stash pop
.
Блогер та розробник Джозеф Круз розповів, чому не варто писати ідеальний код та чому це…
Днями я завзято нила про щось ChatGPT (експериментую між сеансами з живим терапевтом). І от…
«Крутіть колесо, щоб отримати знижку до 50%!» «Натисніть тут, щоб відкрити таємничу пропозицію!» «Зареєструйтесь зараз,…
Дуже хочеться робити якісь десктопні апки. Сумую за часами коли всі програми були offline-first, і…
Надсилаючи криптовалюту, багато новачків ставлять запитання: як працюють комісії та чому вони відрізняються в різних…
Нова афера набирає обертів — ось детальний розбір того, як фальшиві потенційні роботодавці намагаються вкрасти…