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


当前回答

显然,有人需要在 git 上写一本可理解的书,或者 git 需要在文档中更好地解释。

cd <working copy>
git revert master

他们会放弃最后的承诺,似乎正在做。

伊恩

其他回答

如果你知道你需要回去多少承诺,你可以使用:

git checkout master~5 image.png

这假设你在主分支,你想要的版本是5个承诺回来。

要回到最后一个承诺的版本,这是最常用的,你可以使用这个更简单的命令。

git checkout HEAD file/to/restore

我必须在这里插入EasyGit,这是一个插槽,使Git更接近新人,而不会混淆经验丰富的用户。

此分類上一篇: foo/bar foo/baz

但是,请注意, git checkout./foo 和 git checkout HEAD./foo 并不完全相同; 案例在点:

$ echo A > foo
$ git add foo
$ git commit -m 'A' foo
Created commit a1f085f: A
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 foo
$ echo B >> foo
$ git add foo
$ echo C >> foo
$ cat foo
A
B
C
$ git checkout ./foo
$ cat foo
A
B
$ git checkout HEAD ./foo
$ cat foo
A

(第二个添加步骤是指数中的文件,但它不会被承诺。

Git checkout./foo 是指从指数中转向./foo 路径; 添加 HEAD 指示 Git 将指数中的路径转向其 HEAD 修订之前。

首页 > 首页 > 目标文件

git reset HEAD path_to_file

第二次检查该文件

git checkout -- path_to_file