码迷,mamicode.com
首页 > 其他好文 > 详细

git 仓库 回退功能 git checkout

时间:2020-03-15 19:02:27      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:dex   echo   情况   add   https   lan   虚拟   set   tree   

 

 

 

类似于虚拟机快照功能,点击快照,回退倒快照前的状态

回退到正确的commit,回退到那一次commit,只让他跳转到某一次commit

 

第一种情况 改变工作区

查看文件a内容

 

[root@ci-node1 git_test]# cat a
test
bbb

 

 

 

 

现在改变本地工作目录 对文件a 追加ccc内容

[root@ci-node1 git_test]# echo "ccc" >> a
[root@ci-node1 git_test]# cat a
test
bbb
ccc

现在改变了本地工作目录 ,暂存区和本地仓库是没有改变的

// 对比暂存区和本地仓库 没有变化
[root@ci-node1 git_test]# git diff --cached a
[root@ci-node1 git_test]# 

 

本地工种目录改变了,加了ccc

[root@ci-node1 git_test]# git diff a
diff --git a/a b/a
index 126f52b..26a3227 100644
--- a/a
+++ b/a
@@ -1,2 +1,3 @@
 test
 bbb
+ccc

 

 

如果是一个文件改回来就行,如果是多个文件,这时候可以用暂存区覆盖本地工种目录

 

签出 git checkout

如果仓库中已经存在文件 a.txt,在工作区中对 a.txt 修改了,如果想撤销可以使用
checkout,签出覆盖。检出命令 git checkout 是 git 常用的命令之一,同时也是一个很
危险的命令,因为这条命令会重写工作区

 

git checkout -- filename

//用暂存区中filename文件来覆盖工作区中的filename 文件。

相当于取消自上次执行git add filename 以来(如果执行过)的本地修改。 

[root@ci-node1 git_test]# cat a
test
bbb
[root@ci-node1 git_test]# echo "ccc" >> a
[root@ci-node1 git_test]# cat a
test
bbb
ccc
[root@ci-node1 git_test]# git checkout -- a
[root@ci-node1 git_test]# git status
On branch master
nothing to commit, working tree clean
[root@ci-node1 git_test]# cat a
test
bbb

 这种情况是只改变本地工作目录

 

***注意:git checkout . 这条命令危险,相当于用暂存区的所有文件直接覆盖本地
文件,不给用户任何确认的机会!

 

第二种情况看这个链接  

改变工作目录 ,又改变暂存区

 

git 仓库 撤销提交 git reset and 查看本地历史操作 git reflog 

 

 

 

 

 

 

 

git 仓库 回退功能 git checkout

标签:dex   echo   情况   add   https   lan   虚拟   set   tree   

原文地址:https://www.cnblogs.com/mingerlcm/p/11968084.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!