5.23学习Git(二)

1创建版本库
版本库(repository)也叫仓库,可以看做一个目录,这个目录里的所以文件都由Git进行管理,每个文件的修改、删除,Git都能跟踪。

.选择一个合适的地方,创建一个空目录:
$ mkdir learngit //创建一个名叫learngit的空目录
$ cd learngit //把learngit设置为当前目录
$ pwd //查看当前目录
/c/Users/Administrator/learngit
如果使用Windows系统,要保证目录名不包含中文。

2.通过如下命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /Users/Administrator/learngit/.git/
这样Git就把仓库建好了,可以看到在当前目录下多了一个 .git 的目录,这个目录是Git来跟踪管理版本库的。

3.把文件添加到版本库
我们在 learngit 目录下编写一个 readme.txt 文件,内容如下:
Git is a version control system.
Git is free software.
(1) 用 git add 命令,把文件添加到仓库:
$ git commit -m “wrote a readme file” //-m后面输入的是本次提交的说明,可以输入任意内容。
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+) //1 file changed:1个文件被改动(新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt内有两行内容)
create mode 100644 readme.txt

4.修改文件
成功添加并提交了一个 readme.txt 文件,继续修改 readme.txt 文件,改成如下内容:Git is a distributed version control system.
Git is free software.

运行 git status 命令:
$ git status //查看仓库当前的状态
On branch master
Changes not staged for commit: //没有文件将要被提交
(use “git add …” to update what will be committed)
(use “git checkout – …” to discard changes in working directory)

modified:   readme.txt

no changes added to commit (use “git add” and/or “git commit -a”)
上面的命令告诉我们,readme.txt 文件被修改过了,但还没有准备提交的修改。

如果我们想知道上次是怎么修改readme.txt 文件的,需要用 git diff 命令:
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 46d49bf…9247db6 100644
— a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system. //这一句是被删掉的
+Git is a distributed version control system. //这一句是新添加的
Git is free software.

(1) git add
$ git add readme.txt
没有任何输出,这时候可以用 git status 查看一下当前仓库状态:
$ git status
On branch master
Changes to be committed: //将要被提交的文件包括 readme.txt
(use “git reset HEAD …” to unstage)

modified:   readme.txt

(2) git commit
$ git commit -m “add distributed”
[master e475afc] add distributed
1 file changed, 1 insertion(+), 1 deletion(-)

再用 git status 查看一下当前仓库状态:
$ git status
On branch master
nothing to commit, working tree clean //当前没有需要提交的修改,而且,工作目录是干净的。

5.版本回退
如果我们继续对 readme.txt 文件进行修改,改成如下内容:

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

然后添加并提交:

$ git add readme.txt
$ git commit -m “append GPL”
[master 1094adb] append GPL
1 file changed, 1 insertion(+), 1 deletion(-)

到目前为止,readme.txt 文件一共有三个版本被提交到了 Git 仓库里,我们可以用 git log 命令进行查看:
$ git log //查看历史记录
commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master)
Author: Michael Liao askxuefeng@gmail.com
Date: Fri May 18 21:06:15 2018 +0800

append GPL

commit e475afc93c209a690c39c13a46716e8fa000c366
Author: Michael Liao askxuefeng@gmail.com
Date: Fri May 18 21:03:36 2018 +0800

add distributed

commit eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0
Author: Michael Liao askxuefeng@gmail.com
Date: Fri May 18 20:59:18 2018 +0800

wrote a readme file

我们还可以加上 --pretty=oneline 参数:
$ git log --pretty=oneline
1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) append GPL
e475afc93c209a690c39c13a46716e8fa000c366 add distributed
eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 wrote a readme file //一大串数字是 commit id ,而且每个人的都不一样。

现在如果我们想把 readme.txt 文件退回到上一个版本,就可以使用 git reset 命令:$ git reset --hard HEAD^ //HEAD表示当前版本,则HEAD表示上一个版本,那么上上版本就是HEAD^
HEAD is now at e475afc add distributed

这时候用 cat 命令查看一下 readme.txt 的内容:
$ cat readme.txt //查看 readme.txt 文件的内容
Git is a distributed version control system.
Git is free software.

果然 readme.txt 文件返回到了上一个版本。

我们现在想要回到最新的版本,还是使用 git reset 命令:
$ git reset --hard 1094a //这里不能用HEAD而必须使用 commit id ,因为最新版本在之前返回时已经被删除了,1094a就是最新版本的 commit id,可以在之前的代码中查到
HEAD is now at 83b0afe append GPL

这时再查看一下 readme.txt 文件内容:
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
果然,又回到了最新的版本。

今天学习这些感觉挺有意思的 就先写到这。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值