Git:如何回滚/撤销对图像的更改?

6

我们的设计师对一些图片进行了更改,并提交了更改。现在,我们的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 1Commit 2 中所做的更改?

2个回答

10

你想要做的是从旧的提交中检出该文件。

它会像这样:

git checkout <commit 1 refspec> imagefilename.png

提交的refspec可能是HEAD{4}、SHA或标签之一,指向该提交。然后它将作为要添加和提交的更改存在于您的工作目录中。


1

如果这些都不是合并提交,则应该使用git revert <Commit 3> <Commit 4>(其中<Commit X>是提交的SHA1)来解决问题。如果您有未提交的更改,请执行git stash

或者,可以执行git checkout <Commit 2> -- <filenames of images to be restored>,然后执行git add和提交操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接