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


当前回答

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

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

其他回答

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

cd <working copy>
git revert master

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

伊恩

如果您正在使用 Git Extensions 并只想返回文件的父母承诺,您可以选择包含您想要返回的更改的承诺,然后在详细信息面板中选择“Diff”选项卡,右键单击您想要返回的文件,然后“返回文件(s)到”....,然后“A”(父母)

你可以在四个步骤中完成:

返回整个承诺与您想要具体返回的文件 - 它将创建一个新的承诺在您的分支软重定义承诺 - 删除承诺并将变更移动到工作区域 手动点击文件返回并承诺他们下载所有其他文件在您的工作区域

您需要在终端中输入的内容:

git revert <commit_hash> git reset HEAD~1 git add <file_i_want_to_revert> && git commit -m'reverting file' git checkout.

好运

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

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

开始与:

$ 登录

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

接下来,类型:

$ git 重新设置 --hard SHA1_HASH

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

我现在有相同的问题,我发现这个答案是最容易理解的(commit-ref 是您想要返回日志中的变更的 SHA 值):

git checkout [commit-ref] [filename]

这将把旧版本放在你的工作目录中,从那里你可以承诺它,如果你愿意。