Пошук уроків, статей та іншого контенту
Навчитеся читати статус файлів і визначати, які зміни не відстежуються, змінені або вже підготовлені до коміту.
git statusКоманда git status показує поточний стан робочої директорії та індексу Git. За її допомогою можна перевірити:
які файли ще не відстежуються Git;
які відстежувані файли були змінені;
які зміни вже підготовлені до коміту;
чи є зміни, які залишилося додати до індексу;
чи робоча директорія не містить незбережених змін.
Запустіть команду в каталозі Git-репозиторію:
git statusПриклад повідомлення для репозиторію без змін:
On branch main
nothing to commit, working tree cleanЦе означає, що всі зміни вже закомічені, а робоча директорія чиста.
Файл у репозиторії може перебувати в одному з кількох важливих для роботи станів.
Відстежуваний файл уже відомий Git. Якщо змінити його в робочій директорії, Git побачить ці зміни:
Changes not staged for commit:
modified: index.htmlТакий файл змінений, але його зміни ще не підготовлені до коміту.
Новий файл, який ще не додавали до Git, відображається в секції Untracked files:
Untracked files:
styles.cssGit бачить цей файл, але не включатиме його до коміту, доки ви явно не додасте його командою git add.
Якщо додати файл до індексу:
git add index.htmlйого стан зміниться. Команда git status покаже:
Changes to be committed:
modified: index.htmlЦе означає, що поточна версія змін уже підготовлена до наступного коміту.
Уявімо, що в репозиторії є файл index.html. Ви змінюєте його та створюєте новий файл app.js.
# Перевіряємо початковий стан репозиторію
git status
# Додаємо новий файл app.js
touch app.js
# Змінюємо index.html у текстовому редакторі
# Перевіряємо стан після змін
git status
# Підготовлюємо до коміту тільки index.html
git add index.html
# Перевіряємо стан ще раз
git statusПісля цього Git може показати:
Changes to be committed:
modified: index.html
Untracked files:
app.jsТепер:
зміни в index.html уже підготовлені до коміту;
app.js існує в каталозі, але залишається невідстежуваним;
app.js не потрапить до коміту, доки його не додати через git add.
git statusТиповий розгорнутий результат має такий вигляд:
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: index.html
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: styles.css
Untracked files:
(use "git add <file>..." to include in what will be committed)
app.jsОсновні секції:
Changes to be committed — зміни вже підготовлені до коміту;
Changes not staged for commit — відстежувані файли змінені, але зміни ще не підготовлені;
Untracked files — нові файли, які Git ще не відстежує.
Підказки в дужках пояснюють, які команди можна використати далі.
Для компактного результату використовуйте:
git status --shortАбо скорочений варіант:
git status -sПриклад:
M index.html
M styles.css
?? app.jsУ короткому форматі важливі дві позиції перед назвою файлу:
перша позиція показує стан в індексі;
друга позиція показує стан робочої директорії.
Позначення:
M — файл змінено та підготовлено до коміту;
M — файл змінено, але не підготовлено;
?? — файл невідстежуваний;
MM — файл змінено, його перша версія підготовлена, а після цього файл змінили ще раз.
Наприклад:
M index.htmlОзначає, що зміни в index.html уже додані до індексу.
M styles.cssОзначає, що styles.css змінено, але ще не виконано git add.
git addКоманда git add не створює коміт. Вона лише додає поточну версію змін до індексу:
git add styles.css
git statusЯкщо після цього змінити styles.css ще раз, Git розділить ці зміни:
Changes to be committed:
modified: styles.css
Changes not staged for commit:
modified: styles.cssТут ідеться про один файл, але про дві різні версії змін:
попередні зміни вже підготовлені;
нові зміни ще залишаються лише в робочій директорії.
Саме тому корисно запускати git status перед комітом.
Перед створенням коміту можна діяти так:
Запустити git status.
Переглянути невідстежувані та змінені файли.
Додати потрібні файли командою git add.
Знову запустити git status.
Переконатися, що потрібні зміни перебувають у секції Changes to be committed.
Приклад:
git status
git add index.html styles.css
git statusЯкщо потрібно додати всі зміни в поточному каталозі та його підкаталогах, використовують:
git add .Для початківців безпечніше спочатку перевірити статус, а потім явно вказати потрібні файли в git add.
Створення файлу не робить його відстежуваним. Спочатку потрібно додати його до індексу:
git add app.jsПовідомлення:
Changes not staged for commitозначає, що файл змінено, але його зміни ще не підготовлені.
Повідомлення:
Changes to be committedозначає, що зміни вже підготовлені.
Якщо виконати git status у каталозі, який не є репозиторієм і не містить його батьківського каталогу, Git повідомить про помилку:
fatal: not a git repositoryПерейдіть до каталогу проєкту, де було виконано git init або клоновано репозиторій.
git add комітомКоманда git add лише готує зміни. Вона не зберігає їх у журналі комітів. Стан підготовки можна перевірити за допомогою git status.
git status показує стан робочої директорії та індексу.
Untracked files — файли, які Git ще не відстежує.
Changes not staged for commit — змінені, але не підготовлені файли.
Changes to be committed — зміни, підготовлені до коміту.
git status --short показує стислий стан файлів.
Команда git add переводить зміни до стану підготовлених, але не створює коміт.
Перевіряйте git status до та після git add, щоб переконатися, що до коміту потраплять саме потрібні зміни.