当前位置: 首页 > news >正文

Git checkout 某个版本到指定文件夹下

文章目录

    • 场景说明
    • 方案一:git archive 最简单省事
    • 方案二:git show 最灵活, 但文件较多时麻烦
    • 方案三:`git --work-tree` 有bug

场景说明

  • 我不想checkout到覆盖本地工作区的文件,
    而是想把该
  • 版本checkout到另外一个文件夹下,检出看看,这个文件夹不被git管理

方案一:git archive 最简单省事

# `git archive` 创建对应版本 当前目录下的文件为一个tar文件
# `tar -x -C` 加压文件到指定位置
git archive <commit_hash> | tar -x -C <new_folder>

将 <commit_hash> 替换为你想要检出的具体commit的哈希值,<new_folder> 替换为你想要保存文件的新文件夹路径。

这条命令会创建一个对应版本的tar归档文件,并将其解压到指定的新文件夹中,保持了原来的文件结构。

注意:

  • 执行这条命令应在git仓库的根目录下,否则得到的只有当前目录下的文件
  • 你需要确保 <new_folder> 不存在,或者是一个空文件夹,否则会报错。

方案二:git show 最灵活, 但文件较多时麻烦

另一个方案是利用git show结合重定向>逐个检出文件,比如:git show 94119e2:test.py > test_v1.0.py,有多个文件的话就逐个执行。

方案三:git --work-tree 有bug

方案:通过指定--work-tree=/path/to/dist 可实现目标功能git --work-tree=/d/mycode/test_git/labs/2053 checkout 3d9862a -- .其中:• git checkout 3d9862a -- .○ 检出指定版本的所有文件○ `.`表示所有文件, 也可以换成某个文件/文件夹• --work-tree=/d/mycode/test_git/labs/2053○ 用于指定检出到的位置,该路径必须存在○ 如果该路径下已有文件,则会直接覆盖

执行这个命令之后会把你的文件变成not staged for commit, 然后执行git add就可以了,不需要再commit.

http://www.lryc.cn/news/133051.html

相关文章:

  • Java多态详解(2)
  • Camtasia导入srt字幕乱码
  • YOLOv5、YOLOv8改进:SOCA注意力机制
  • 机器人的运动范围
  • 学习笔记|基于Delay实现的LED闪烁|模块化编程|SOS求救灯光|STC32G单片机视频开发教程(冲哥)|第六集(下):实现LED闪烁
  • 微服务-Ribbon(负载均衡)
  • 解决C#报“MSB3088 未能读取状态文件*.csprojAssemblyReference.cache“问题
  • GeoScene Pro在地图制图当中的应用
  • 国标混凝土结构设计规范的混凝土本构关系——基于python代码生成
  • 系统架构设计-架构师之路(八)
  • 【SA8295P 源码分析】25 - QNX Ethernet MAC 驱动 之 emac_isr_thread_handler 中断处理函数源码分析
  • 函数栈帧的创建与销毁
  • 工业安全生产平台在面粉行业的应用分享
  • Gitlab服务部署及应用
  • 【nodejs】用Node.js实现简单的壁纸网站爬虫
  • xlsx xlsx-style file-saver 导出json数据到excel文件并设置标题字体加粗
  • Win11游戏高性能模式怎么开
  • 深度学习最强奠基作ResNet《Deep Residual Learning for Image Recognition》论文解读(上篇)
  • 第22次CCF计算机软件能力认证
  • Go语言基础之基本数据类型
  • Linux Tracing Technologies
  • iOS自定义下拉刷新控件
  • Springboot写单元测试
  • 一篇文章教你使用Docker本地化部署Chatgpt(非api,速度非常快!!!)及裸连GPT的方式(告别镜像GPT)
  • 前馈神经网络dropout实例
  • Android DataStore:安全存储和轻松管理数据
  • opencv进阶12-EigenFaces 人脸识别
  • The internal rate of return (IRR)
  • 半导体自动化专用静电消除器主要由哪些部分组成
  • 【C++入门到精通】C++入门 —— deque(STL)