Я работаю в ветке (т.е. design
), и я внес ряд изменений, но мне нужно отменить их все и сбросить, чтобы они соответствовали версии репозитория. Я думал, git checkout design
что сделаю это, но он просто говорит мне, что я уже в ветке design
и у меня есть 3 измененных файла.
Как мне отменить эти изменения и получить ветку в том виде, в котором она сейчас стоит на удаленном сервере?
git reset --hard HEAD^
git reset --hard HEAD^
действительно должен быть принятый ответ. OP не спрашивал о других ветках ...источник
git rm [branch name].diff
Если вы не хотите никаких изменений
design
и определенно хотите, чтобы она соответствовала удаленной ветке, вы также можете просто удалить ветку и воссоздать ее:источник
@Will, git immersion - действительно хороший и простой учебник по git. он покажет вам, как отменить изменения для следующих случаев: неустановленный, постановочный и зафиксированный. лаборатории 14-18
источник
Ruby
установить .. что не всегда кажется выборомЕсли вы хотите отменить изменения в своей локальной ветке, вы можете спрятать эти изменения с помощью команды git stash.
git stash сохранить "some_name"
Ваши изменения будут сохранены, и вы можете получить их позже, если хотите, или можете удалить их. После этого в вашей ветке не будет незафиксированного кода, и вы сможете извлечь последний код из основной ветки с помощью git pull.
источник
В корне исходного кода:
git reset ./ HEAD <--un-stage any staged changes git checkout ./ <--discard any unstaged changes
источник
ОБРАТНЫЙ метод отмены всех изменений:
Я нашел этот вопрос после того, как сделал слияние и забыл о разработке сразу после этого. Вы догадались: я начал изменять несколько файлов прямо на мастере . D'Oh! Поскольку моя ситуация вряд ли уникальна (мы все это сделали, не так ли; ->), я предлагаю обратимый способ, который я использовал, чтобы отбросить все изменения, чтобы мастер снова выглядел как разработка .
Сделав,
git diff
чтобы увидеть, какие файлы были изменены, и оценить масштаб моей ошибки, я выполнил:После первого сохранения всех изменений они были очищены. Все изменения , внесенные в файлы с ошибками в мастер ушли и паритет восстановлен.
Допустим, теперь я хотел восстановить эти изменения. Я могу это сделать. Первый шаг - найти хэш тайника, который я только что очистил / сбросил:
После изучения хеша я успешно восстановил незафиксированные изменения с помощью:
Я действительно не хотел восстанавливать эти изменения, просто хотел убедиться, что могу их вернуть, поэтому я очистил их снова.
Другой вариант - применить тайник к другой ветке , а не стирать изменения. Таким образом, с точки зрения очистки изменений, внесенных при работе с неправильной ветвью,
stash
вы получаете большую гибкость для восстановления после вашей бу-бу.В любом случае, если вам нужны обратимые средства очистки изменений в ветке, вышесказанное является менее опасным способом в этом случае использования.
источник
git checkout -f
Этого достаточно для вашего вопроса. Единственное, что когда-то сделано, значит, сделано. Нет отмены.
источник