Восстановить потерянные изменения из-за неправильного использования git - PullRequest
0 голосов
/ 20 января 2011

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

Я работаю над веткой: feature / logging

В этой ветке я изменяю файлы:

  • log.py
  • tests / test_log.py

Эти файлы доступны и в других ветках.Я не ставил и не фиксировал эти файлы.

3.Я сейчас пытаюсь получить изменения, сделанные в удаленном репозитории, запустив:

%git pull origin

Thisприводит к слиянию, и возникает конфликт слияния в нескольких файлах (не обязательно тех, которые я изменяю), и слияние не удается.Я решил, что не хочу сейчас разрешать конфликт слияния и прекращаю слияние, выполнив:

%git reset --hard HEAD

Я думаю, что этот шаг вызвал содержимое файла 'log.py ' и ' tests / test_log.py ', которые нужно извлечь из предыдущего коммита и перезаписать мои незафиксированные и неотмеченные изменения.

Теперь мои вопросы:

  • Правильно ли я полагаю, что причиной потери данных является сброс, выполненный для прерывания слияния?
  • Если сброс был причиной потери данных, есть ли способ вернуть мои незафиксированные / неразрешенные изменения?

Ответы [ 2 ]

4 голосов
/ 20 января 2011

Да, git reset --hard будет без разбора уничтожать все локальные изменения и восстанавливать до последнего коммита. Но это должен быть тот коммит, на котором вы были до того, как сделали git pull (при условии, что у вас не было никаких неустановленных изменений на этом этапе); так что все может быть не так уж плохо.

git pull может быть немного волосатым. Есть хорошая статья о том, почему вы должны рассматривать git fetch и git merge как отдельные операции.

0 голосов
/ 25 августа 2017

Если кто-то совершил ту же ошибку, что и я git reset --hard перед добавлением неподготовленных файлов, тогда все еще есть вероятность вернуть эти изменения.Хотя эти файлы больше не доступны в репо, но некоторые из новых IDE поддерживают свою собственную историю.Как и в моем случае, я смог получить свои неотмеченные изменения из функции локальной истории Android Studio, которая находится в VCS. Направления до Возврат изменений

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