Git
Chapters ▾ 2nd Edition

A3.4 Appendix C: Команди Git - Галуження та зливання

Галуження та зливання

Існує лише жменя команд, які реалізують більшість функціоналу галуження та зливання в Git.

git branch

Команда git branch насправді є чимось на кшталт інструменту керування гілками. Вона може виводити список існуючих гілок, створювати нову гілку, вилучати гілки та перейменовувати їх.

Більша частина Галуження в git присвячена команді branch та використовується впродовж цілого розділу. Ми спочатку представляємо її в Створення нової гілки, та розглядаємо більшість з решти її функціоналу (надання списку та вилучення) в Управління гілками.

У Відслідковувані гілки ми використовуємо git branch -u опцію, щоб налаштувати відслідковувану гілку.

Нарешті, ми розглядаємо дещо з того, що вона робить усередині в Посилання Git.

git checkout

Команда git checkout використовується для переключення гілок та отримання вмісту до вашої робочої директорії.

Ми вперше стикаємось з нею в Переключення гілок разом з командою git branch.

Ми бачимо як її використати для початку слідкування за гілками за допомогою опції --track в Відслідковувані гілки.

Ми використовуємо її, щоб повернути конфлікти у файлі за допомогою --conflict=diff3 в Отримання при конфліктах.

Ми ближче розглядаємо її звʼязок з git reset у Усвідомлення скидання (reset).

Нарешті, ми переходимо до деяких деталей імплементації в HEAD.

git merge

Інструмент git merge використовується для зливання однієї чи більше гілок до поточної гілки. Вона потім пересуває поточну гілку до результату злиття.

Команда git merge була вперше представлена в Основи галуження. Хоча ми її використовували в різних місцях книги, є лише декілька варіацій команди merge — зазвичай просто git merge <гілка> з назвою єдиної гілки, яку ви бажаєте злити.

Ми розглянули як робити зварене злиття (коли Git зливає роботу, проте вдає ніби це просто новий коміт без запису історії гілки, яку ви зливаєте) наприкінці Відкритий проект з форками.

Ми розповіли чимало про процес зливання та цю команду, включно з командою -Xignore-space-change та опцією --abort, щоб припинити проблемне зливання в Складне злиття.

Ми дізнались як перевірити підписи перед зливанням, якщо ваш проект використовує підписи GPG у Підписання комітів.

Нарешті, ми дізнались про зливання піддерев у Зливання піддерев.

git mergetool

Команда git mergetool просто запускає зовнішній помічник зливання у випадку, якщо у вас проблеми зі зливанням у Git.

Ми нашвидку згадуємо її в Основи конфліктів зливання та детально розглядаємо як написати свій власний інструмент для зовнішнього злиття в Зовнішні інструменти зливання (merge) та різниці (diff).

git log

Команда git log використовується, щоб показати досяжну записану історію проекту, починаючи з останнього відбитку коміту у зворотному порядку. Типово вона покаже лише історію поточної гілки, проте ви можете надати їй інше чи навіть декілька посилань чи гілок, які треба обійти. Вона також часто використовується, щоб показати різницю між двома чи більше гілками на рівні комітів.

Ця команда використовується майже в кожному розділі цієї книги, щоб продемонструвати історію проекту.

Ми представляємо команду та доволі глибоко розглядаємо її в Перегляд історії комітів. Там ми бачимо опції -p та --stat, щоб отримати уявлення про впроваджені кожним комітом зміни, а також опції --pretty та --oneline для перегляду історії стисліше, разом з деякими простими опціями фільтрації за датою та автором.

У Створення нової гілки ми використовуємо її з опцією --decorate, щоб легко унаочнити, куди ведуть наші вказівники гілок, а також використовуємо опцію --graph, щоб побачити, як виглядають галужені історії.

У Маленька закрита команда та Інтервали комітів ми розглядаємо синтаксис branchA..branchB для використання з командою git log, щоб побачити які коміти унікальні в гілці відносно іншої гілки. У Інтервали комітів ми розглядаємо це дуже докладно.

У Журнал зливання та Потрійна крапка ми розглядаємо використання формату branchA...branchB та синтаксису --left-right для перегляду того, що є в одній з гілок, проте не в них обох. У Журнал зливання ми також дивимось, як використати опцію --merge, щоб допомогти з дослідженням конфліктів злиття, а також опцію --cc, щоб бачити конфлікти комітів злиття у вашій історії.

У Скорочення reflog (журнал посилань) ми використовуємо опцію -g, щоб переглянути журнал посилань Git за допомогою цього інструменту замість обходу гілки.

У Пошук ми бачимо використання опцій -S та -L для доволі витончених пошуків чогось, що сталось колись у коді, наприклад, щоб побачити історію функції.

У Підписання комітів ми бачимо, як використати --show-signature, щоб додати перевірочний рядок до кожного коміту у виводі git log, в залежності від того, правильно його підписано чи ні.

git stash

Команда git stash використовується для тимчасового збереження роботи поза комітом, щоб очистити робочу директорії без необхідності створювати коміт з незавершеною роботою в гілці.

Вона повністю розглянута в Ховання та чищення.

git tag

Команда git tag використовується, щоб створити сталу закладку на окремий момент в історії коду. Зазвичай, це використовується для речей, на кшталт видань (release).

Ця команда представлена та детально розглянута в Теґування, та ми використовуємо її на практиці в Теґування ваших видань (release).

Ми також розглядаємо, як створити підписаний GPG теґ за допомогою опції -s та перевіряємо підпис за допомогою опції -v у Підписання праці.