检出文件夹时注意事项

一、使用场景

使用git时有时需要恢复某个文件夹到指定的revision,命令为git checkout revision directoryPath

二、注意事项

假设仓库有两个提交A–>B

1、提交详情

A提交时仓库目录如下:

1
2
3
4
test
|__dir01
|__text01.txt
|__text02.txt

B提交时仓库目录如下:

1
2
3
4
5
6
test
|__dir01
|__text01.txt(修改)
|__text02.txt(修改)
|__text03.txt(新增)
|__text04.txt(新增)

2、错误操作

此时在B执行git checkout A test/dir01,结果为

1)text01.txt,text02.txt两个文件恢复到提交A的版本;

2)text03.txt,text04.txt仍会保留;

仓库目录如下所示:

1
2
3
4
5
6
test
|__dir01
|__text01.txt(A的版本)
|__text02.txt(A的版本)
|__text03.txt
|__text04.txt

3、目录恢复的正确命令

此时在B执行rm -rf test/dir01/*git checkout A test/dir01两个命令。

执行后仓库目录如下所示:

1
2
3
4
test
|__dir01
|__text01.txt(A的版本)
|__text02.txt(A的版本)

评论