在项目开发中,偶尔会因为误删文件或其他原因需要从git仓库中恢复某些文件。此篇文章将介绍如何通过git从历史提交记录、分支记录恢复指定文件。
说明:使用git checkout除了可以切换分支外,还可以签出指定文件。
语法:
class="brush:javascript;gutter:true;">git checkout [<options>] [<branch>] -- <file>
API:https://git-scm.com/docs/git-checkout
注意:签出后的文件将会覆盖【工作目录】中的相同文件;若【工作目录】中的文件已删除,会创建签出的文件。
背景:本地仓库有个a.txt文件,最近2次此文件的修改记录如下:
git checkout -- a.txt
提示:运行上面的命令后,将签出上次提交时a.txt文件。
附加上commit id,将会签出指定提交记录中的文件:
git checkout 830cf95f56ef9a7d6838f6894796dac8385643b7 -- a.txt
背景:一个仓库一般有一个master分支和其他多个brach。branch主要目的是为了某个功能开发,在开发期间 master 分支可能更新了核心模块,这时其他branch需要同步更新此模块。
说明:只需要签出时指定分支名称。
命令:
git checkout master -- a.txt
除了签出制定文件外,git还支持签出指定目录、制定后缀等等。
说明:签出根目录下所有 txt 后缀的文件。
命令:
git checkout -- *.txt
说明:签出 css 目录。
命令:
git checkout -- css/
==================================系列文章==========================================
本篇文章: 8.1 git:③ git 签出(恢复)指定文件
Web开发之路系列文章