Помилково додав файли в Git за допомогою команди:
git add myfile.txt
Я ще не запустив git commit
. Чи є спосіб скасувати це, щоб ці файли не потрапили в комміт?
Ви можете скасувати git add
перед фіксацією за допомогою
git reset <file>
яка вилучить його з поточного індексу (списку "about to be committed"), не змінюючи при цьому нічого іншого.
Ви можете використовувати
git reset
без назви файлу, щоб вилучити всі належні зміни. Це може стати у пригоді, коли файлів занадто багато, щоб перелічити їх по одному за розумний проміжок часу.
У старих версіях Git'а наведені вище команди еквівалентні git reset HEAD <file>
і git reset HEAD
відповідно, і не спрацюють, якщо HEAD
невизначений (тому що ви ще не зробили жодної фіксації у вашому сховищі) або неоднозначний (тому що ви створили гілку з назвою HEAD
, що є дурницею, яку не варто робити). Це було змінено в Git'і 1.8.2, тому в сучасних версіях Git'а ви можете використовувати наведені вище команди навіть до того, як зробите свій перший комміт:
"git reset" (без опцій або параметрів) використовується для виходу з помилки, коли у вас немає ніяких коммітов в історії, але тепер вона видає вам порожній індекс (щоб відповідати неіснуючому комміту, в якому ви навіть не перебуваєте).
Якщо ти набереш:
git status
Git підкаже вам, що саме є в стадії і т.д., включно з інструкціями щодо того, як вилучити стадію:
use "git reset HEAD <file>..." to unstage
Я вважаю, що Git робить досить хорошу роботу, підштовхуючи мене до правильних дій у подібних ситуаціях.
Примітка: В останніх версіях Git'а (1.8.4.x) це повідомлення змінено:.
(use "git rm --cached <file>..." to unstage)
Для цього можна використовувати git remove
або git rm
з прапором --cached
. Спробуйте:
git help rm