User:Haynihayni/sandbox

Коміт в git - це об'єкт, що містить посилання на:
 * знімок стану (snapshot), що записаний раніше в індекс
 * метадані автора
 * коментарі
 * нуль чи більше вказівників на інші коміти, що являються прямими батьками даного коміту

В залежності від ситуації, у коміта може бути така кількість батьків:
 * 0 для першого коміта
 * 1 для звичайного коміта
 * декілька для коміта, що отримується в результаті злиття двох чи більше гілок.

Створення коміту
Виконуючи команду git commit, Git створюєте коміт. При цьому Git вираховує контрольну суму для кожного підкаталогу і зберігає ці об'єкти-дерева в Git-репозиторій. Після цього Git створює об'єкт для коміту, в якому є метадані і вказівник на об'єкт-дерево. Таким чином, Git зможе відтворити поточний стан, коли в цьому буде необхідність.

Стани файлів
Перед збереженням будь-якого файлу Git рахує контрольну суму, і вона стає індексом цього файлу. Тому не можливо внести зміну у файлу чи папки, щоб Git цього не помітив. Всі файли можуть знаходитись в одному з трьох станів: зафіксований, змінений, підготовлений. Зафіксований означає, що файл уже збережений у вашій локальній базі. Змінений - файли, що змінювались, але ще не зафіксованні. Підготовлені - всі змінені файли, що відмічені для включення в наступний коміт.

Використання git commit
використання: git commit [<ключі>] [--] <шлях>

Коміт ключі -F, --file <файл>    прочитати повідомлення з файлу --author <автор>     перевизначити автора для коміту --date <дата>        перевизначити дату для коміту -m, --message <повідомлення> коміт повідомлення -c, --reedit-message повторно використати та редагувати повідомлення з визначеного коміту -C, --reuse-message повторно використати повідомлення з визначеного коміту

-e, --edit           редагувати коміт -a, --all            закомітити всі змінені файли -i, --include        додати визначені файли до індексу з коміту --interactive        інтерактивно додавати файли -p, --patch          інтерактивно додавати зміни -o, --only           комітити тільки визначені файли --dry-run            показати, що може бути закомічено --branch             показати інформацію, щодо гілки --amend              внести зміни в попередній коміт -u, --untracked-files показати файли, що не відслідковуються

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

Ми редагуємо файл file.txt. Наша зміна - це додавання строки "Hello world". Коли ми виконуємо команду git add file.txt, то ми цей файл додаємо в індекс. При виконанні git commit відбувається збереження змін у вигляді snapshot.

Використання ключа -a дозволяє нам уникати введення лишніх команд. При її виконані спочатку буде переглянуто робоче дерево на предмет змін, і потім відповідні зміни будуть збережені.