Как отменить все изменения, внесенные в ветку?

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

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

Ответ 1

Примечание. Вы НЕ МОЖЕТЕ НЕ ДЕЛАТЬ.

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

Ответ 2

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

Ответ 3

Если вы не хотите никаких изменений в 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 design branch

Ответ 4

git diff master > branch.diff
git apply --reverse branch.diff

Ответ 5

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

Ответ 6

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

Ответ 7

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

git сохранить штамп "some_name"

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