git 恢复指定文件到指定提交

查看指定文件在指定时间段内的提交记录

以查询根目录下的 footer.php 文件最近三周的提交记录为例:执行 git log 命令共查到3条提交记录,其中95c2ab7是接下来要恢复到的提交:

git log --pretty=format:"%h, %cn, %cd, %s" --since='3 week ago' --before='today' --date=iso -- footer.php

执行上述命令得到的查询结果:

444ed06, Wang, 2022-09-12 20:18:53 +0800, 第三次提交的提交说明
95c2ab7, Wang, 2022-09-04 21:22:13 +0800, 第二次提交的提交说明
55d3b92, Wang, 2022-09-01 10:52:09 +0800, 第一次提交的提交说明

注意,指定的文件名前一定要有--以隔开文件名和前面的参数
%h是简写的提交记录SHA-1(需要完整形式的SHA-1请替换为%H
%cn是提交者姓名
%cd是提交时间,它的时间格式可以通过后面的--date=iso指定格式
%s是提交说明
--since--before分别指定开始和结束日期范围

恢复指定文件到指定提交

接下来的 git reset 命令用来将 footer.php 恢复到95c2ab7这次提交

git reset 95c2ab7 footer.php

如果使用 sourcetree,现在在工作台的已暂存文件中看到的就是95c2ab7这次提交时 footer.php 的样子,此时,若是提交,将恢复到历史版本(在提交前,如果你改变主意了,直接取消暂存即可)。

发表评论