我如何将修改的文件转换为以前的修订,在一个特定的 commit hash (我通过 git log 和 git diff 确定)?


当前回答

执行下列命令,进行软重新设置,变更到您的本地。

git reset --soft HEAD^1

查看您此前承诺的文件的状态,到达您的本地,然后进行更改。

 git status

承诺并按下文件后进行更改. 未来的承诺历史错误的文件将不会显示

在从起源中提取之前,始终保持喷射(可选步骤)

 git remote prune origin

其他回答

执行下列命令,进行软重新设置,变更到您的本地。

git reset --soft HEAD^1

查看您此前承诺的文件的状态,到达您的本地,然后进行更改。

 git status

承诺并按下文件后进行更改. 未来的承诺历史错误的文件将不会显示

在从起源中提取之前,始终保持喷射(可选步骤)

 git remote prune origin

这里有很多建议,主要沿着 git checkout $revision - $file 的线条。

git show $revision:$file > $file

而且,我使用这个很多只是暂时看到一个特定的版本:

git show $revision:$file

git show $revision:$file | vim -R -

(OBS: $ 文件需要预定为./ 如果它是 git 显示 $ 修订的相对路径: $ 文件工作)

更奇怪的是:

git archive $revision $file | tar -x0 > $file

我想我找到了它......从 http://www-cs-students.stanford.edu/~blynn/gitmagic/ch02.html

有时你只是想回去,忘记每一个变化都过去了一个特定的点,因为它们都是错误的。

开始与:

$ 登录

它向您展示了最近的承诺列表,以及它们的SHA1哈希。

接下来,类型:

$ git 重新设置 --hard SHA1_HASH

将国家恢复到一定的承诺,并将所有新的承诺永久从记录中删除。

如果您在最后的命令中犯下错误的文件,请遵循指示:

开源树,改变这个承诺

此分類上一篇

更改行,并找到你的承诺,错误的文件发送为承诺

此分類上一篇

你可以看到你的更改列表在这个承诺选择它,然后点击... 按钮右侧... 点击逆文件,然后你可以看到它在文件状态选项卡在左侧下方然后点击不步骤:

此分類上一篇

打开您的视觉工作室代码,然后返回,完成您的删除文件之后,您可以在源树上看到您的最后一个承诺的结果。

此分類上一篇

git log --oneline  // you see commits, find commit hash to which you want reset
git diff y0urhash src/main/.../../YourFile.java   // to see difference
git reset y0urhash src/main/.../../YourFile.java   // revert to y0urhash commit
git status                                        // check files to commit
git commit -m "your commit message"
git push origin