随笔 - 118  文章 - 0 评论 - 341 阅读 - 299万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

在项目开发中,偶尔会因为误删文件或其他原因需要从git仓库中恢复某些文件。此篇文章将介绍如何通过git从历史提交记录、分支记录恢复指定文件。

 

1. git checkout

说明:使用git checkout除了可以切换分支外,还可以签出指定文件。

语法

1
git checkout [<options>] [<branch>] -- <file>

APIhttps://git-scm.com/docs/git-checkout

注意:签出后的文件将会覆盖【工作目录】中的相同文件;若【工作目录】中的文件已删除,会创建签出的文件。

 

2. 从当前分支签出指定文件

背景:本地仓库有个a.txt文件,最近2次此文件的修改记录如下:

2.1 从上一次提交中签出指定文件

1
git checkout -- a.txt

提示:运行上面的命令后,将签出上次提交时a.txt文件。

 

2.2 从指定的提交历史中签出指定文件

附加上commit id,将会签出指定提交记录中的文件:

1
git checkout 830cf95f56ef9a7d6838f6894796dac8385643b7 -- a.txt

 

3.从其他分支签出指定文件

背景:一个仓库一般有一个master分支和其他多个brach。branch主要目的是为了某个功能开发,在开发期间 master 分支可能更新了核心模块,这时其他branch需要同步更新此模块。

说明:只需要签出时指定分支名称。

命令

1
git checkout master -- a.txt

 

4. 签出其他类型

除了签出制定文件外,git还支持签出指定目录、制定后缀等等。

4.1 签出某个后缀的文件

说明:签出根目录下所有 txt 后缀的文件。

命令

1
git checkout -- *.txt

 

4.2 签出指定目录

说明:签出 css 目录。

命令

1
git checkout -- css/

 

posted on   FangMu  阅读(16609)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示