Git学习使用(三):版本控制

首先,要学会使用git status 查看Git仓库的状态。
我们先更改Readme.txt文件为

Git is a distributed version control system.
Git is free software.

接下来运行git status

$git status
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

    修改:     Readme.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a"

Git 会告诉我们现在仓库的状态,以及我们应该怎么做。

已经知道Readme.txt文件发生了改变,我们也要知道如何查看文件更改的部分,这就要用到git diff,顾名思义就是要查看不同。

$git diff Readme.txt
diff --git a/Readme.txt b/Readme.txt
index f7249b8..d225882 100644
--- a/Readme.txt
+++ b/Readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system
+Git is a destributed version control system
 Git is free software

版本切换

我们同样还是先修改Readme.txt文件

Git is a distributed version control system.
Git is free software distributed under the GPL.

然后使用我们之前说过的git addgit commit -m ' '方法进行提交。

现在,回顾一下我们提交过的Readme.txt文件:
版本1:wrote a readme file

Git is a version control system.
Git is free software.

版本2:add distributed

Git is a distributed version control system.
Git is free software.

版本3:append GPL

Git is a distributed version control system.
Git is free software distributed under the GPL.

在Git中,我们可以使用git log命令显示从最近到最远的提交日志

$git log
commit 27aac89313fd6ce2bb0910290c77bb6269037dd6
Author: K****a <li*******@outlook.com>
Date:   Thu Feb 9 07:15:13 2017 -0500

    append GPL

commit 3304e0b2ad9c9341659f6d61085fdcefebffe693
Author: K****a <li*******@outlook.com>
Date:   Thu Feb 9 07:14:22 2017 -0500

    add distributed

commit fb57c123ecf755a68c35e1bee187304b5dcb4676
Author: K****a <li*******@outlook.com>
Date:   Thu Feb 9 07:13:22 2017 -0500

    wrote a readme file

上面的信息中以commit打头的那行就是那个版本的版本号(commit id),它是一串SHA1的数值,是我们版本切换需要使用的东西,但不需要完全记下了,只需要开头的几个字符,Git就会自己去匹配了。接下来的信息就是作者和时间了,最后是我们在提交版本时写的注释信息。

那该如何运用以上信息进行版本切换呢?
Git提供了git reset命令,在Git中用HEAD代表当前版本,HEAD^就代表上个版本,HEAD^^就是上上个版本,如果想表达上50个版本可以使用HEAD~50来表示。

$git reset --hard HEAD^
HEAD 现在位于 3304e0b add distributed

我们发现版本移动到了3304e0b,不过再查看一些git log发现只剩下两个版本了。如果你之前的窗口没有关,那就可以使用以下这种方式返回:

$git reset --hard 27aac
HEAD 现在位于 27aac89 append GPL

这样我们就找回了之前的版本,但是如果窗口关了,那也有办法!
使用git reflog可以查看每次进行版本更新的命令,包含SHA1的一部分,足够我们进行版本恢复了!

其他会用到的命令

Ⅰ.git checkout -- file可以丢弃工作区的修改
Ⅱ.如果已经add到了暂存区:用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区
Ⅲ.删除文件,用命令git rm file删掉,并且git commit提交版本。要是错误删除可以使用git checkout -- file恢复。

注:git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值