Потужний інструмент, якщо вміти з ним поводитися: використовуйте Git як сеньйор
Розробник Якоб Беннет у своєму блозі на Medium пише, що Git — це потужний інструмент, яким приємно користуватися, якщо ви розумієте, як саме це робити.
Він роками використовував Git у різних командах та проєктах. Хоча щодо деяких робочих процесів у Якоба непевна думка (наприклад, щодо squash
), він все одно вважає цей інструмент дуже потужним та гнучким. Передаємо йому слово.
Переглянемо Git-логи
Git-логи не дуже зручні для роботи «з коробки».
Git log є базовим
Використання git log
дає вам певну інформацію. Але це надзвичайно висока роздільна здатність і зазвичай не те, що ви шукаєте.
git log
Давайте чесно: ці логи не вражають. Вони нудні. І тут повно інформації, яка вам зараз не дуже потрібна. Ви намагаєтесь зрозуміти усі деталі того, що саме відбувається у вашому проєкті.
Є кращий спосіб.
Git-лог з більшою видимістю
Використовуючи --graph
та --format
, ми можемо швидко отримати підсумковий перегляд git-комітів у нашому проєкті:
git log --graph --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%an%C(reset)%C(bold yellow)%d%C(reset) %C(dim white)- %s%C(reset)' --all
А ось ці логи вже виглядають гарно! Тут є навіть щось подібне до дерева з гілками.
Вони показують, хто над чим працював, коли були внесені зміни та як ваші зміни вписуються в загальну картину:
--graph
додає деревоподібний графік ліворуч. Це не найстильніший графік, але він допомагає візуалізувати зміни в гілках проєкту (приклад).--format
дозволяє налаштувати формат ваших логів. Ви можете обрати з уже готових форматів або написати власний, як у цьому прикладі.--all
містить всі посилання, теги та гілки в логах (включно з віддаленими гілками). Можливо, вам це не потрібно, тому можна налаштувати, як зручніше (приклад).
Ось тут можна переглянути інформацію, як ви можете покращувати свої git-логи.
Розуміння конкретного коміту
Часто вам потрібно розуміти, що відбувається з конкретним комітом. git show
може показати вам високорівневий звіт змін у коміті, але з його допомогою можна побачити зміни і у конкретних файлах.
Перегляд підсумків коміту
git show <commit> --stat
Використовуючи прапорець --stat
, ви побачите підсумок коміту разом із зміненими файлами та детальною інформацією про те, як вони змінилися.
Перегляд певних змін файлів для коміту
Якщо ви хочете передивитись зміни конкретних рядків у певному файлі, використовуйте git show
зі шляхом до файлу:
git show <commit> -- <filepath>
Це показує вам конкретні зміни рядка у вашому файлі. За замовчуванням ви побачите зміни рядків разом із трьома додатковими рядками на обох кінцях — щоб надати контекст того, де саме у файлі знаходяться змінені рядки.
Перегляньте документацію git-show
, щоб дізнатися, як краще розуміти git commit
.
Внесення змін
Ви створили гілку в проєкті, внесли деякі зміни у свою гілку, і готові знову об’єднати ці зміни в основну. Але інший розробник вніс зміни до тих самих файлів.
Якщо ви використовуєте такий сервіс, як GitHub — вас буде повідомлено, чи не виник конфлікт злиття:
Git запропонує вам розв’язати ці конфлікти злиття перед тим, як ви додасте свої зміни в main
. Це дозволить зберегти ту частину роботи, яку виконали інші розробники.
Щоб вирішити проблему, ви зазвичай обираєте один із двох шляхів: merge
чи rebase
.
git merge чи git rebase
Якщо у головній гілці є зміни, які ви хочете додати до своєї гілки, ви можете або об’єднати зміни, або перебазувати свою гілку з іншої точки.
merge
бере зміни з однієї гілки та об’єднує їх з іншою в одному коміті злиття.
git merge origin/main your-branch
rebase
коригує точку, в якій гілка фактично відгалужується (тобто переміщує гілку до нової початкової точки від базової гілки).
git rebase origin/main your-branch
Як правило, rebase
використовують, коли є зміни у верхній гілці (наприклад, main
), які хочуть додати у свою гілку. А merge
– коли зміни у гілці, яку хочуть повернути в main
.
Використовувати squash чи ні
Раніше я був прихильником цього прийому. Але після того, як прочитав статтю Дерека Остіна, змінив свою думку. Рекомендую і вам з нею ознайомитися.
Автор: Якоб Беннет
Текст адаптувала Євгенія Козловська
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: