Git
Chapters ▾ 2nd Edition

A3.3 Appendix C: Команди Git - Базове збереження відбитків

Базове збереження відбитків

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

git add

Команда git add додає вміст з робочої директорії до індексу (чи області додавання) для наступного коміту. Коли виконується команда git commit, типово вона дивиться лише на індекс, отже git add використовується для підготовки того, яким саме ви бажаєте зробити наступний відбиток коміту.

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

Спершу ми представляємо та пояснюємо докладно git add у Контролювання нових файлів.

Ми згадуємо, як використати її для розвʼязання конфліктів у Основи конфліктів зливання.

Ми розглядаємо її використання для інтерактивного додавання лише окремих частин редагованих файлів у Інтерактивне індексування.

Нарешті, ми емулюємо її на низькому рівні в Об’єкти дерева, щоб ви могли уявити, що виконується за кулісами.

git status

Команда git status покаже вам різні стани файлів у вашій робочій директорії та індексі. Які файли змінені, проте не в індексі, а які індексовані, проте досі не збережені в коміті. У звичайній формі, вона також покаже вам деякі базові підказки щодо переміщення файлів між цими станами.

Спочатку ми розглядаємо status у Перевірка статусу ваших файлів, як базову, як і спрощену форми. Хоча ми використовуємо її впродовж книги, дійсно все, що ви можете робити за допомогою команди git status розглянуто там.

git diff

Команда git diff використовується, коли ви бажаєте побачити різницю між якимись двома деревами. Це може бути різниця між вашим робочим середовищем та індексом (просто git diff), між вашим індексом та останнім комітом (git diff --staged), або між двома комітами (git diff master branchB).

Ми вперше бачимо базове використання git diff у Перегляд ваших доданих та недоданих змін, де ми показуємо, як дізнатись, які зміни індексовані, а які ще ні.

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

Ми бачимо як перевірити різницю між гілками ефективніше за допомогою синтаксису git diff A...B у Як дізнатися, що додано.

Ми дізнаємось, як ігнорувати різницю в пробільних символах за допомогою -b та як порівняти стани конфліктних файлів за допомогою --theirs, --ours та --base у Складне злиття.

Нарешті, ми використовуємо її для ефективного порівняння змін у підмодулях за допомогою --submodule у Основи підмодулів.

git difftool

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

Ми лише коротко згадуємо про це в Перегляд ваших доданих та недоданих змін.

git commit

Команда git commit бере вміст всіх файлів, які ви індексували командою git add, та записує новий сталий відбиток до бази даних, а потім пересуває вказівник поточної гілки до нього.

Спочатку ми розглядаємо базове створення комітів у Збереження ваших змін у комітах. Там ми також демонструємо використання опції -a для пропуску кроку git add у щоденних процесах роботи, та як використати опцію -m, щоб передати повідомлення коміту з командного рядка замість запуску редактора.

У Скасування речей ми розглядаємо використання опції --amend для переробки останнього коміту.

У Гілки у кількох словах, ми набагато детальніше розглядаємо, що робить git commit та чому він це робить таким чином.

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

Нарешті, ми поглянули на те, що робить команда git commit у фоні та як вона насправді реалізована в Об’єкти комітів.

git reset

Команда git reset переважно використовується для скасування речей, як ви напевно можете здогадатись через дієслово reset. Вона переміщує вказівник HEAD, а також може змінити індекс (область додавання) та може змінити робочу директорію, якщо ви використаєте --hard. Ця остання опція робить можливим втрату вашої праці через цю команду, якщо використати її неправильно, отже переконайтесь, що ви розумієте її перед використанням.

Ми спочатку розглядаємо найпростіше використання git reset в Вилучання файла з індексу, де ми використовуємо її для деіндексації файлу, на якому ми були виконали git add.

Ми потім розглядаємо її доволі детально в Усвідомлення скидання (reset), яка повністю присвячена поясненню цієї команди.

Ми використовуємо git reset --hard для скасування злиття у Припинення злиття, де ми також використовуємо git merge --abort, яка в деякій мірі є обгорткою для команди git reset.

git rm

Команда git rm використовується для вилучення файлів з індексу та робочої директорії Git. Вона схожа на git add в тому, що індексує вилучення файлу для наступного коміту.

Ми розглядаємо команду git rm дещо детальніше в Видаляємо файли, включно з рекурсивним вилученням файлів та вилученням лише з індексу, проте залишаючи їх у робочій директорії за допомогою --cached.

Єдине інше відмінне використання git rm у книзі є в Вилучення обʼєктів, де ми стисло пояснюємо --ignore-unmatch при виконанні git filter-branch, яке просто змушує не вважати помилкою відсутність файлу під час спроби його вилучити. Це може бути корисним для написання скриптів.

git mv

Команда git mv є маленькою зручною командою, яка переміщує файл, виконує git add для нового файлу та git rm для старого.

Ми лише мимохідь згадуємо цю команду в Пересування файлів.

git clean

Команда git clean використовується для вилучення небажаних файлів з вашої робочої директорії. Це може включати вилучення тимчасових результатів збірки, чи файлів конфлікту злиття.

Ми розглядаємо багато опцій та випадків, в яких ви можете використати команду clean у Очищення робочої директорії.