Розробник Якоб Беннет у своєму блозі на Medium пише, що Git — це потужний інструмент, яким приємно користуватися, якщо ви розумієте, як саме це робити.
Він роками використовував Git у різних командах та проєктах. Хоча щодо деяких робочих процесів у Якоба непевна думка (наприклад, щодо squash), він все одно вважає цей інструмент дуже потужним та гнучким. Передаємо йому слово.
Git-логи не дуже зручні для роботи «з коробки».
Використання git log дає вам певну інформацію. Але це надзвичайно висока роздільна здатність і зазвичай не те, що ви шукаєте.
git log
Давайте чесно: ці логи не вражають. Вони нудні. І тут повно інформації, яка вам зараз не дуже потрібна. Ви намагаєтесь зрозуміти усі деталі того, що саме відбувається у вашому проєкті.
Є кращий спосіб.
Використовуючи --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.
Якщо у головній гілці є зміни, які ви хочете додати до своєї гілки, ви можете або об’єднати зміни, або перебазувати свою гілку з іншої точки.
merge бере зміни з однієї гілки та об’єднує їх з іншою в одному коміті злиття.
git merge origin/main your-branch
rebase коригує точку, в якій гілка фактично відгалужується (тобто переміщує гілку до нової початкової точки від базової гілки).
git rebase origin/main your-branch
Як правило, rebase використовують, коли є зміни у верхній гілці (наприклад, main), які хочуть додати у свою гілку. А merge – коли зміни у гілці, яку хочуть повернути в main.
Раніше я був прихильником цього прийому. Але після того, як прочитав статтю Дерека Остіна, змінив свою думку. Рекомендую і вам з нею ознайомитися.
Автор: Якоб Беннет
Текст адаптувала Євгенія Козловська
Анонімний хакер запустив «магазин небезпечних iOS-додатків» — публічний реєстр програм, швидко створених за допомогою вайб-кодингу.…
Джеймі Даймон, керівник одного з найбільших американських банків JP Morgan, заявив, що штучний інтелект може…
Microsoft оновила інтегроване середовище керування SQL Server Management Studio (SSMS). Особливістю релізу 22.1.1 є автодоповнення…
Компанія Blue Origin, яку заснував власник Amazon Джефф Безос, оголосила про запуск TeraWave, мережі супутникового…
Компанія Preply, яка з’єднує тих, хто вивчає іноземні мови, з репетиторами, після чергового раунду фінансування…
Компанія Microsoft випустила оновлення фреймворку React Native для платформи Windows. Версія 0.81 тепер має підтримку…