Skycoop

git经验(1)-从历史中恢复指定文件

2018-09-11
skycoop
git

有一篇博客误操作删掉,并且后续多次提交并推送到github仓库,所以看了下怎么恢复到当前并重新提交推送到Github仓库。

分析问题并寻找可行的解决方案

目前我的git的提交记录是:c0 -> …-> c1 -> c2 -> c3,没有其他分支,只有主分支master.

c3 为我当前最新的提交记录,c1 创建了博客文件《2018-07-21-CMD不得不吐的槽.md》,c2 误删并提交了其他的文件。

目的从c1里将文件恢复到当前的工作目录并作为新的提交c4推送到github。

可行的解决方案

看git revert的帮助文档时,有如下说明,正好对应我的需求。

If you want to extract specific files as they were in another commit, you should see git-checkout(1), specifically the git checkout <commit> -- <filename> syntax.

验证

c1 的 commit 是605724db6bd05b832b187b3a976844c567570375,在文件的所在目录下运行 git bash, 执行

git checkout 605724 -- 2018-07-21-CMD不得不吐的槽.md

结果文件回来了。重新提交并推送到github,任务完成。


相关文章

上一篇 初识Python

目录