git还原指定文件到指定历史版本
相比较IDE提供的git图形化工具,我更喜欢使用命令行来操作git。
命令
git checkout <hash> <filename>
实验环境
假如我们的项目有如下文件
checkout$ tree src
src
└── main
└── java
└── com
└── jianglei
└── App.java
4 directories, 1 file
第一步:初始化git仓库
$ git init
Initialized empty Git repository in /Users/jianglei/yunhe/checkout/.git/
第二步:对App.java文件作二次修改并提交
$ echo "/* comment 1 */" >> src/main/java/com/jianglei/App.java
$ git add src/main/java/com/jianglei/App.java
$ git commit -m "comment 1"
[master (root-commit) 25ed983] comment 1
1 file changed, 14 insertions(+)
create mode 100644 src/main/java/com/jianglei/App.java
$ echo "/* comment 2 */" >> src/main/java/com/jianglei/App.java
$ git add src/main/java/com/jianglei/App.java
$ git commit -m "comment 2"
恢复App.java到第一次提交时的内容
查看第一次提交的hash
$ git log --pretty=oneline
41c935343d379ac27883339e72d00824d281ad46 (HEAD -> master) comment 2
25ed9835b329b5b109cc9593136a82ec62d84b3c comment 1
执行恢复命令
$ git checkout 25ed9835b329 src/main/java/com/jianglei/App.java
$ tail -n 1 src/main/java/com/jianglei/App.java
/* comment 1 */
执行后最后一行变成了/* comment 1 */
说明恢复成功了。