git - 如何签出文件的先前版本但不覆盖 git 中的文件?
问题描述
我知道git checkout <sha> -- <filename>
会将给定文件恢复为给定版本,但我希望恢复该文件但不覆盖现有文件
阐述:
- 假设我有一个文件
a.txt
- 我想创建一个文件
b.txt
,它只是a.txt
其他提交的先前版本
如果我能a.txt
以某种方式阅读完整版本..我可以将其重定向到b.txt
解决方案
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 show
或git cat-file -p
针对 blob 打印内容,可以将其重定向到b.txt
.
请参阅gitrevisions。
推荐阅读
- javascript - JavaScript ES6 到基本 JavaScript
- python - Errno 24 附加到大型 CSV 文件时打开的文件过多
- javascript - d3 强制链接未连接
- ios - Xcode 不会在模拟器上运行应用程序
- javascript - 一个框架
在某些设备的某些浏览器上失真 - javascript - react-draft-wysiwyg 从动态创建的编辑器更新编辑器状态
- android - WorkContinuation 的第二个 WorkRequest 不起作用
- c# - 扩展继承的属性 c#
- javascript - 使用移动设备/其他笔记本电脑从本地主机登录 Google 登录以进行测试
- javascript - 角度表达式未在视图中更新