Как отменить все изменения, внесенные в ветку? - PullRequest
99 голосов
/ 28 января 2011

Я работаю в ветке (т. Е. design) и внес ряд изменений, но мне нужно отменить их все и сбросить, чтобы они соответствовали версии репозитория. Я думал, что git checkout design сделает это, но он просто говорит мне, что я уже на ветке design и у меня есть 3 измененных файла.

Как мне отменить эти изменения и получить ветку в том виде, в каком она сейчас стоит на удаленном сервере?

Ответы [ 8 ]

171 голосов
/ 28 января 2011

Примечание: вы НЕ МОЖЕТЕ ОТМЕНИТЬ this.

Попробуйте git checkout -f, это отменит любые локальные изменения, которые не зафиксированы в ALL ветви и мастер.

68 голосов
/ 28 января 2011

git reset --hard может помочь вам, если вы хотите выбросить все со времени вашего последнего коммита

16 голосов
/ 28 января 2011

Если вы не хотите каких-либо изменений в design и определенно хотите, чтобы оно просто совпадало с веткой удаленного, вы также можете просто удалить ветку и воссоздать ее:

# Switch to some branch other than design
$ git br -D design
$ git co -b design origin/design            # Will set up design to track origin's design branch
15 голосов
/ 28 августа 2015
git diff master > branch.diff
git apply --reverse branch.diff
7 голосов
/ 28 января 2011

@ Will, git immersion - действительно хороший и простой учебник по git.он покажет вам, как отменить изменения в следующих случаях: без обработки, постановкой и фиксацией.лаборатории 14-18

3 голосов
/ 06 февраля 2017

В корне источника: git reset ./ HEAD <--un-stage any staged changes git checkout ./ <--discard any unstaged changes

2 голосов
/ 16 августа 2017

Если вы хотите отменить изменения в вашей локальной ветке, вы можете сохранить эти изменения с помощью команды git stash.

git stash save "some_name"

Ваши изменения будут сохранены, и вы сможете получить их позже, если захотите или можете удалить их. После этого в вашей ветке не будет никакого незафиксированного кода, и вы можете извлечь последний код из своей основной ветки, используя git pull.

0 голосов
/ 18 июля 2018

git checkout -f

Этого достаточно для вашего вопроса.Единственное, как только это сделано, это сделано.Там нет отмены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...