Ответ 1
Примечание. Вы НЕ МОЖЕТЕ НЕ ДЕЛАТЬ.
Попробуйте git checkout -f
, это отменит любые локальные изменения, которые не выполняются в ветвях ВСЕ.
Я работаю в ветке (т.е. design
), и я внес ряд изменений, но мне нужно отбросить их все и reset, чтобы они соответствовали версии репозитория. Я думал, что git checkout design
сделает это, но он просто говорит мне, что я уже в ветке design
и что у меня есть 3 измененных файла.
Как я могу отбросить эти изменения и получить ветку, как она стоит сейчас на удаленном сервере?
Примечание. Вы НЕ МОЖЕТЕ НЕ ДЕЛАТЬ.
Попробуйте git checkout -f
, это отменит любые локальные изменения, которые не выполняются в ветвях ВСЕ.
git reset --hard может помочь вам, если вы хотите выбросить все с момента последнего фиксации
Если вы не хотите никаких изменений в 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
git diff master > branch.diff
git apply --reverse branch.diff
@Will, git immersion - действительно хороший и простой учебник git. он покажет вам, как отменить изменения для следующих случаев: неустановленный, поставленный и совершенный. лаборатории 14-18
В корне источника:
git reset ./ HEAD <--un-stage any staged changes
git checkout ./ <--discard any unstaged changes
Если вы хотите отменить изменения в своем локальном ветки, вы можете сохранить эти изменения, используя команду git stash.
git сохранить штамп "some_name"
Ваши изменения будут сохранены, и вы сможете получить их позже, если хотите, или можете удалить их. После этого у вашего ветки не будет никакого незафиксированного кода, и вы можете вытащить последний код из основной ветки, используя git pull.