从git中的旧提交恢复文件

我有几个星期前做过的老承诺。 我想从该提交中只恢复一个文件。 我该怎么办?


git checkout 'master@{7 days ago}' -- path/to/file.txt

这不会改变HEAD,它只会覆盖本地文件path/to/file.txt

有关可能的修订规范,请参阅man git-rev-parse(当然,一个简单的散列(如dd9bacb )会很好地工作)

不要忘记进行修改(在审核完成后......)


  • 通过git checkout [Revision_Key] -- path/to/file从旧提交中git checkout [Revision_Key] -- path/to/file
  • 根据需要添加,提交和推送。

  • 我需要恢复一个最近的文件,承诺到git。 所以,为了重申并给出另一个观点,您需要通过执行以下两个步骤来完成此操作:

  • git log -3
    这显示了三个最近的提交。 阅读评论和作者的名字,以便缩小想要的确切版本的范围。 记下您需要的提交版本的长提交ID(即b6b94f2c19c456336d60b9409fb1e373036d3d71)。

  • git checkout b6b94f2c19c456336d60b9409fb1e373036d3d71 - myfile.java
    传递提交ID和要恢复的文件名。 确保在双连字符之前和之后有一个空格。

  • 还有很多其他的方式来做到这一点。 但是这个是我记得更简单的一个。 希望有所帮助。

    注:如果您位于项目路径/文件夹中,则无需在结帐命令中输入完整文件的路径。

    链接地址: http://www.djcxy.com/p/8983.html

    上一篇: Restore file from old commit in git

    下一篇: Hard reset of a single file