首页 > 解决方案 > 如何签出文件的先前版本但不覆盖 git 中的文件?

问题描述

我知道git checkout <sha> -- <filename>会将给定文件恢复为给定版本,但我希望恢复该文件但不覆盖现有文件

阐述:

  1. 假设我有一个文件a.txt
  2. 我想创建一个文件b.txt,它只是a.txt其他提交的先前版本

如果我能a.txt以某种方式阅读完整版本..我可以将其重定向到b.txt

标签: git

解决方案


git show <rev>:a.txt > b.txt
# or
git cat-file -p <rev>:a.txt > b.txt

<rev>可以是一个分支、一个标签、一个提交等。<rev>:a.txt指的是一个存储a.txt修订内容的 blob 对象<rev>git showgit cat-file -p针对 blob 打印内容,可以将其重定向到b.txt.

请参阅gitrevisions


推荐阅读