微商城网站建设咨询,人才招聘网最新招聘2023,企业seo推广的绝密诀窍曝光,邯郸网站建设小霖文章目录 场景说明方案一#xff1a;git archive 最简单省事方案二#xff1a;git show 最灵活, 但文件较多时麻烦方案三#xff1a;git --work-tree 有bug 场景说明
我不想checkout到覆盖本地工作区的文件#xff0c; 而是想把该版本checkout到另外一个文件夹下#xff… 文章目录 场景说明方案一git archive 最简单省事方案二git show 最灵活, 但文件较多时麻烦方案三git --work-tree 有bug 场景说明
我不想checkout到覆盖本地工作区的文件 而是想把该版本checkout到另外一个文件夹下检出看看这个文件夹不被git管理
方案一git archive 最简单省事
git archive commit_hash | tar -x -C new_folder将 commit_hash 替换为你想要检出的具体commit的哈希值new_folder 替换为你想要保存文件的新文件夹路径。
这条命令会创建一个tar归档文件并将其解压到指定的新文件夹中保持了原来的文件结构。
注意你需要确保 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.