Как мне отменить 'git add' перед коммитом? - PullRequest
8168 голосов
/ 08 декабря 2008

Я по ошибке добавил файлы в git с помощью команды:

git add myfile.txt

Я еще не запускал git commit. Есть ли способ отменить это, чтобы эти файлы не были включены в коммит?

Ответы [ 35 ]

22 голосов
/ 19 мая 2010

Просто наберите git reset, он вернется назад, и вы как будто никогда не печатали git add . с момента последнего коммита Убедитесь, что вы совершили раньше.

18 голосов
/ 04 октября 2016

Предположим, я создаю новый файл newFile.txt.

enter image description here

Предположим, я случайно добавил файл, git add newFile.txt

enter image description here

Теперь я хочу отменить это добавление перед коммитом, git reset newFile.txt

enter image description here

17 голосов
/ 28 октября 2017

Для конкретного файла:

  • git reset my_file.txt
  • git checkout my_file.txt

Для всех добавленных файлов:

  • git reset.
  • git checkout.

Примечание: checkout изменяет код в файлах и переходит в последнее обновленное (подтвержденное) состояние. сброс не меняет коды; он просто сбрасывает заголовок.

13 голосов
/ 02 октября 2016

Чтобы отменить git, добавьте

git reset filename

13 голосов
/ 22 октября 2015

Я удивлен, что никто не упомянул интерактивный режим:

git add -i

выберите вариант 3, чтобы удалить файлы. В моем случае я часто хочу добавить более одного файла, в интерактивном режиме вы можете использовать такие номера, чтобы добавить файлы. Это займет все, кроме 4: 1,2,3,5

Чтобы выбрать последовательность, просто наберите 1-5, чтобы взять все от 1 до 5.

Git промежуточные файлы

13 голосов
/ 31 января 2013

Эта команда отменяет ваши изменения:

git reset HEAD filename.txt

Вы также можете использовать

git add -p 

для добавления частей файлов.

9 голосов
/ 27 июня 2017

git add myfile.txt # это добавит ваш файл в список фиксации

Совершенно противоположно этой команде,

git reset HEAD myfile.txt  # this will undo it. 

Итак, вы будете в предыдущем состоянии. указанный будет снова в неотслеживаемом списке (предыдущее состояние).

это сбросит вашу голову с указанным файлом. так что, если у вашей головы нет этого средства, оно просто сбросит его

9 голосов
/ 11 июля 2016
git reset filename.txt

Удаляет файл с именем filename.txt из текущего индекса, области «готовность к фиксации», без изменения чего-либо еще.

8 голосов
/ 08 декабря 2015

В SourceTree вы можете сделать это легко через графический интерфейс. Вы можете проверить, какая команда используется sourcetree для удаления файла.

Я создал новый файл и добавил его в git. Затем я удалил его, используя графический интерфейс SourceTree. Это результат:

Unstaging файлы [12/12/15 10:43]
git -c diff.mnemonicprefix = false -c core.quotepath = false -c credential.helper = сброс исходного файла -q - путь / к / файлу / имени файла.java

SourceTree использует reset для удаления новых файлов.

7 голосов
/ 26 октября 2017
git reset filename.txt  

Удаляет файл с именем filename.txt из текущего индекса, области «готовность к фиксации», без изменения чего-либо еще.

...