Перегляд різниці між комітами
Раніше ми використовували git log, щоб побачити загальну історію репозиторію. Але часто хочеться побачити коміти, які зачепили конкретний файл.
Наприклад, якщо в одному з файлів трапився дивний шматок коду і хочеться з'ясувати, хто й навіщо його змінив, спершу варто подивитися історію саме цього файла. Для цього додай до команди git log шлях до файла, наприклад git log hello.html.
Переглянь історію файла hello.html за допомогою команди вище.
Підказка: пам'ятай, що вивід git log можна гортати стрілками і на клавіатурі. Щоб вийти з режиму pager, натисни q.
Тепер зробімо те саме з файлом style.css.
Переглянь історію файла style.css.
Як бачиш, Git показує тільки ті коміти, що зачепили вказаний файл. Це дуже зручно, коли треба простежити, як файл змінювався з часом. А як порівняти самі зміни між двома комітами?
Ми вже використовували git diff, щоб порівняти зміни в робочій директорії з областю підготовки чи останнім комітом. Тепер подивімося, як порівняти будь-які два коміти в репозиторії.
Наприклад, погляньмо, що змінилося у файлі hello.html з версії 1.0 (тег 1.0 ми створили в розділі «Теги та гілки», пам'ятаєш?).
Щоб порівняти два коміти, додай до команди git diff два посилання на коміти: git diff <from> <to>. Порядок має значення: Git покаже, що треба змінити в першому коміті, щоб отримати другий. Якщо передати лише одне посилання, Git порівняє той коміт із робочим деревом.
Не забувай, що посилатися на коміти можна по-різному: через хеші, теги, назви гілок або відносні посилання на кшталт HEAD~1.
Порівняймо версію 1.0 файла hello.html з його станом в останньому коміті. Це можна зробити такою командою:
git diff 1.0 HEADЗапусти команду вище, щоб порівняти ці два коміти.
Підказка: коли вивід git diff не вміщається на один екран, термінал переходить у режим pager. Як і раніше, вивід можна гортати стрілками і на клавіатурі. Щоб вийти з режиму pager, натисни q.
Вивід має бути приблизно таким:
diff --git a/hello.html b/hello.htmlindex ae7ab8c..7833e8a 100644--- a/hello.html+++ b/hello.html@@ -1,4 +1,7 @@ <html>+ <head>+ <link rel="stylesheet" href="style.css"/>+ </head> <body> <h1>Hello, World!</h1> </body>diff --git a/style.css b/style.cssnew file mode 100644index 0000000..d224431--- /dev/null+++ b/style.css@@ -0,0 +1,3 @@+h1 {+ color: red;+}\ No newline at end of fileВивід показує зміни між цими двома комітами: рядки, які було видалено (позначені -), і рядки, які було додано (позначені +).
Проходь курс так, як він і задуманий: маленькими порціями, у сфокусованому лінійному порядку, поступово відкриваючи статті Gitopedia. Будь-коли можна продовжити зі справжнім Git у VS Code/Cursor/Antigravity/Windsurf.
але потрібен вхід