2013-08-07 5 views
3

У меня есть модифицированные файлы в моем git-репо, но git checkout <file> не работает и git reset --hard. Сообщения об ошибках отсутствуют. У меня также есть один * .orig и git clean -f тоже не удаляет этот файл?Отменить измененные файлы в git не работает

+0

Вы сделали «слияние», и вам не удалось? Или, вы в середине «слияния»? – Atropo

+0

@Atropo, может быть, я объединился и не зафиксирован, потому что файлы, кажется, поставлены. Но я думал, что могу сбросить поставленные файлы, используя 'git reset HEAD '? – Marcus

+0

опубликовать вывод 'мерзавца status' – Atropo

ответ

2

Если git checkout и git reset --hard оставляют файлы в измененном состоянии, это может быть вызвано git-модификацией строк или пробелов.

Запустите git diff --ignore-space-change, чтобы увидеть, есть ли изменения без пробелов.

Если * .orig файл не отслеживаются мерзавцем, но игнорируется, необходимо добавить параметр -x так что мерзавец не использует стандарт игнорировать правила.

git clean -f -x 
+0

Не из вышеперечисленных работ для меня? http://www.youtube.com/watch?v=OPW0Pag4p9s – Marcus

+0

'git clean' удаляет только необработанные файлы, но' git status' показывает, что файл отслеживается. Измененный статус, безусловно, является пробелом, см. [Работа с окончанием строки] (https://help.github.com/articles/dealing-with-line-endings). – RazerM

+0

Хорошо, как я могу сбросить измененные отслеживаемые файлы из моего локального репо? – Marcus

0

попробуйте это.

Я думаю, что файл находится в стадии постановки.

первым сделать

git reset HEAD <file>... 

затем сделать

git checkout <file>... 
0

Мне кажется, что вы находитесь в середине merge, поэтому у вас есть .orig файлы. Инструменты Diff создают файлы .orig, чтобы сохранить резервную копию объединенных файлов.

Если вы хотите, чтобы отменить слияние можно сделать, но только если вы мерзавец> = 1.6.1

git reset --merge 

Или, начиная с версии 1..7.4, вы делаете:

git merge --abort 
Смежные вопросы