git checkout -- file命令用法
git checkout — <file>命令用法:
[root@mq1 ~]# mkdir a
[root@mq1 ~]# cd a
[root@mq1 a]# git init # 初始化版本库
初始化空的 Git 版本库于 /root/a/.git/
[root@mq1 a]# vi a.txt # 工作区创建文件 内容为1
[root@mq1 a]# cat a.txt
1
[root@mq1 a]# git add a.txt # 文件添加到暂存区
[root@mq1 a]# git commit -m "a1" # 将暂存区的文件提交到版本库,此时版本库中文件的内容是1
[master(根提交) 1f14ebe] a1
1 file changed, 1 insertion(+)
create mode 100644 a.txt
[root@mq1 a]# vi a.txt #工作区修改内容为12
[root@mq1 a]# cat a.txt
1
2
[root@mq1 a]# git add ./a.txt # 添加到暂存区,此时暂存区的内容为12
[root@mq1 a]# vi a.txt # 工作区修改文件为123
[root@mq1 a]# cat a.txt
1
2
3
[root@mq1 a]# git checkout a.txt # 还原
[root@mq1 a]# cat a.txt # 发现内容是12,证明内容是从缓存区还原的
1
2
[root@mq1 a]# git reset HEAD ./a.txt # 重置缓存区,和版本库保持一致
重置后撤出暂存区的变更:
M a.txt
[root@mq1 a]# git checkout ./a.txt # 还原
[root@mq1 a]# cat a.txt # 内容为1,内容从版本库还原
1
[root@mq1 a]#
命令 git checkout --a.txt
意思就是,把 a.txt
文件在工作区的修改全部撤销,这里有两种情况:
一种是
a.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是
a.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit
或 git add
时的状态。
fixed
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。