Как вернуться к новой ветке на git (удалив все незафиксированные изменения)

Как я могу отменить/удалить все свои изменения, которые я сделал вручную на локальном компьютере.

Пример у меня есть 2 ветки

1) master branch
2) branch2

Я проверил ветку 2 и начал делать некоторые изменения локально. Я случайно заменил слово во всех файлах. Итак, теперь все мои файлы не синхронизированы.

Я хочу начать заново. (Все, что у меня есть в ветке 2, что было зафиксировано и отправлено), и удалите все мои локальные изменения.

я пытался

git pull branch2
git reset --hard
git --hard branch2
git checkout .

Но мои недавние изменения все еще существуют в моем файле local. Есть ли команда, чтобы отменить это, или мне нужно клонировать ветку и начать оттуда?

PS все мои локальные изменения вообще не были зафиксированы.

Спасибо


person Jesse    schedule 12.03.2018    source источник


Ответы (2)


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

git reset --hard

git pull

Вы сказали, что не фиксировали файлы, поэтому, вероятно, есть неотслеживаемые локальные файлы, которые необходимо удалить. Я бы запустил git clean -f . Это удалит неотслеживаемые файлы. Если вам также нужно удалить неотслеживаемые каталоги (папки), вы можете сделать git clean -df

Надеюсь, это поможет!

person kimcodes    schedule 13.03.2018
comment
В случае, если неотслеживаемые файлы не удаляются, git добавляет их, а затем git reset. - person myselfmiqdad; 16.03.2018

Это удалит все изменения, сделанные на локальном сервере, и вытащит последние зафиксированные изменения в вашей ветке.

git reset .
git checkout .
git checkout branch2
git fetch && git reset --hard origin/branch2
person Pankaj Gadge    schedule 12.03.2018