2016-07-12 3 views
0

У меня есть куча файлов в каталоге и будет содержать несколько файлов среди всех.git reset сохранение нескольких файлов

Моя история мерзавец будет выглядеть следующим образом:

commit0: Initial empty commit 
commit1: start versioning file a.txt 
commit2: edit a.txt 
commit3: start versioning file b.txt 
commit4: edit b.txt 
... 

Через некоторое время, я хочу, чтобы откатить все мои изменения и вернуться к состоянию commit0. Однако, git reset --hard commit0 удалит a.txt и b.txt

Есть ли способ отменить все изменения, но не удалить файлы, которые были добавлены?

Спасибо,

+1

Добавление файлов _are_ часть изменений. Можете ли вы рассказать о том, что вы пытаетесь сделать? –

+0

Представьте себе папку с тысячей файлов с именем 0001.txt до 1000.txt. Я хочу начать отслеживать 0500.txt, а затем добавить к нему строку и внести свои изменения. Затем начните отслеживать 0501.txt и добавьте в него строку. В некоторых случаях я хочу вернуть эти изменения. Таким образом, базовое получение состояния моего репо до того, как я начал отслеживать эти файлы. Но я не хочу, чтобы откат не удалял ни 0500.txt, ни 0501.txt – navidof

ответ

2

Не используйте --hard.

от фиксации 4:

git reset commit0 
git checkout commit1 -- a.txt 
git checkout commit3 -- b.txt 
+0

Мягкий сброс не отменяет изменения. Он просто удаляет их из индекса. Мне нужны файлы для получения состояния, которое у них было, прежде чем начинать отслеживать их – navidof

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