Git: Как откатить / отменить изменение изображения? - PullRequest
2 голосов
/ 28 июня 2011

Поэтому наш дизайнер внес некоторые изменения в некоторые изображения и зафиксировал их.Так что теперь наш git log выглядит примерно так:

Commit 1: Changed images
Commit 2: Oops, forgot to commit a few images

... тогда бизнес хотел, чтобы они выглядели по-другому, поэтому дизайнер изменил их и передал их снова:

Commit 1: Changed images
Commit 2: Oops, forgot to commit a few images
Commit 3: Changed images again
Commit 4: Minor tweaks to new images just committed

... теперь бизнес решил, что им понравились изображения с первого раза.Так что теперь нам нужно вернуться к тому, что было в начале.Я испробовал несколько разных подходов и думаю, что мне нужно использовать подход git revert, чтобы я мог создать новый коммит, который вернет изображения обратно к тому, что было раньше.Однако у меня, кажется, возникают конфликты, когда я пытаюсь это сделать.Как мне сделать это, чтобы я мог заставить новые изображения перезаписываться с изменениями, сделанными в Commit 1 и Commit 2?

Ответы [ 2 ]

7 голосов
/ 28 июня 2011

Что вы хотите сделать, это проверить файл из старого коммита.

Это будет выглядеть так:

git checkout <commit 1 refspec> imagefilename.png

, что refspec для коммитов может быть HEAD {4} или может быть SHA или может быть тегом ... Что-то, что относится к этому коммиту. Затем он будет добавлен и зафиксирован в вашем рабочем каталоге.

1 голос
/ 28 июня 2011

Если ни один из них не является коммитом слияния, тогда git revert <Commit 3> <Commit 4> должен выполнить трюк (где <Commit X> - SHA1 коммита).Сделайте git stash, если у вас есть незафиксированные изменения.

В качестве альтернативы, выполните git checkout <Commit 2> -- <filenames of images to be restored>, затем git add и фиксацию.

...