4

所以我们的设计师对一些图像进行了一些更改,并提交了这些更改。所以现在我们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

4

2 回答 2

9

您要做的是从旧提交中检查文件。

它看起来像:

git checkout <commit 1 refspec> imagefilename.png

该提交 refspec 可能是 HEAD{4} 或者可能是 SHA 或者可能是标签.... 引用该提交的东西。然后它将作为添加和提交的更改位于您的工作目录中。

于 2011-06-27T20:14:39.710 回答
1

如果这些都不是合并提交,那么git revert <Commit 3> <Commit 4>应该解决问题(<Commit X>提交的 SHA1 在哪里)。git stash如果您有未提交的更改,请执行 a 。

或者,执行git checkout <Commit 2> -- <filenames of images to be restored>后跟git add一个提交。

于 2011-06-27T20:09:09.907 回答