2016-06-22 4 views
0

У меня есть некоторые поэтапные и некоторые неустановленные изменения в git, а также некоторые необработанные файлы. Я хотел бы сохранить неустановленные изменения и не проверенные файлы и отказаться от поэтапных изменений.Восстановить поэтапные изменения, сохранить неустановленные изменения

Самый простой способ сделать это в командной строке?

ответ

1

У меня есть некоторые поэтапные и некоторые неустановленные изменения в git, а также некоторые необработанные файлы. Я хотел бы сохранить неизмененные изменения и не проверенные файлы и отменить внесенные изменения.

Как уточнен в своем комментарии, вы имеете в виду «... и отбросить поставило изменений» (не совершенных изменений). Обычно вы должны использовать git reset для отмены git add. Но в вашем случае, если вы хотите сохранить ваши unstaged изменения, так:

git commit  # move staged to a commit, does not touch unstaged changes/unadded files 

git checkout HEAD^ # checkout the previously committed version while keeping unstaged changes/unadded files 

git branch yourbranchname --force # to grab the branch and move it back as well 
+0

Собственно, вопрос имеет смысл в моем случае использования. Таким образом, я не хочу останавливаться, но на самом деле неустойчивый и отбрасывать поэтапные изменения, не теряя (в настоящее время) неустановленные изменения ... –

+0

Да, но вы написали «отбросить совершенные изменения». Вы имеете в виду «поэтапные изменения». Важная разница здесь, возможно, вы захотите обновить свой вопрос. – AnoE

+0

О, ты, конечно, прав, это была опечатка. Спасибо за подсказку, я обновил вопрос! –

1
git reset HEAD^ 

Сброс головы к родителю, и теперь совершающие изменения отбрасываются в индексе, но сохраняется в рабочем дереве.

git checkout -- paths_of_files_whose_changes_are_to_be_discarded_in_the_work_tree 

Отменить изменения в дереве работ.

+0

Извините, что в этом вопросе возникла ошибка, поэтому я обновил ее (я написал «commited» вместо «поэтапно» ошибочно). Поэтому я думаю, что ваш ответ больше не подходит ... –

+0

@ JanRüegg Тогда 'git reset - path_of_file' может отменить изменения файла в индексе. Дальнейший 'git checkout - path_of_file' может отменить chages в дереве работ. – ElpieKay

+0

Хорошая идея ... однако в индексе есть очень много файлов, поэтому я пошел на другое решение, чтобы сохранить некоторую типизацию;) –

Смежные вопросы