【问题标题】:Retrieving an old version of a file using Git使用 Git 检索文件的旧版本
【发布时间】:2013-05-22 10:20:55
【问题描述】:

假设我想从几次提交中检索旧版本的文件 (filename.html)。我是否认为我需要这样做

git checkout sha -- filename.html

(其中 sha 是我想要的提交的哈希)

但这会将文件放在我的暂存索引中,而不是我的工作目录中,对吧?因此,如果我现在运行git commit,我的 repo 将更新以将旧文件放回原处,但我的工作目录仍将包含较新的文件(我不会再这样做了)。

我想我可以通过git checkout -- filename.html 让两者重新同步,但这是最好的方法吗?这个过程似乎是一个漫长的过程,很快就会变得一团糟。有没有办法让旧版本的 filename.html 回到我的工作目录中,而不会“卡在”我的暂存索引中?

谢谢。

【问题讨论】:

    标签: git staging git-checkout


    【解决方案1】:

    但这会将文件放在我的暂存索引中,而不是我的工作目录中,对吧?

    它会将旧版本 both 放在索引 工作树中。

    如果我现在运行 git commit 我的 repo 将更新以将旧文件放回原处,但我的工作目录仍将包含较新的文件

    不,它将具有该文件的旧版本。

    我想我可以执行 git checkout -- filename.html 以使两者重新同步,但这是最好的方法吗?

    要恢复到最新版本,您必须:

    git reset HEAD -- filename.html # remove it from the index
    git checkout -- filename.html   # restore latest
    

    【讨论】:

      【解决方案2】:

      如果你只是想查看文件而不打算提交它,你可以简单地说

      git show sha1:filename
      

      【讨论】:

        猜你喜欢
        • 2021-01-02
        • 2011-12-09
        • 2014-08-15
        • 1970-01-01
        • 1970-01-01
        • 2010-10-27
        • 1970-01-01
        • 1970-01-01
        • 2018-03-29
        相关资源
        最近更新 更多