Git使用教程

这里只记录一下git的使用心得,安装什么的直接跳过;

1. 创建版本库

版本库又名仓库,英文名repository,我们可以简单理解为一个文件夹,一个被git管理的文件夹,每个文件的新增、修改、删除都会被Git跟踪,以便于追踪历史,或者还原到某个节点。

Git创建版本库很简单,只需要找到一个合适的地方,使用 git init命令即可创建。

$ mkdir test
$ cd test
$ git init
Initialized empty Git repository in F:/temp/test/.git/

瞬间Git就把仓库建好了,而且告诉你是一个空的仓库,在仓库中有一个.git文件夹,这个文件家就是Git用来跟踪管理版本库的,没事千万不要乱动,你会破坏掉他的。

1.1 Git是如何管理的

首先我们因该明确Git只能跟踪文本文件的改动,比图.txt文件、程序代码等等;Git可以告诉你每次的改动,比如在某行添加了什么,删除了什么。而视频、图片这些文件Git虽然也能跟踪,但是没办法跟踪具体的变化,也就是说某个图片从50KB变成了60KB,Git只知道改变了,但是改变了什么他却不能知道。

Git为什么能对纯文本做精确的跟踪呢?那是因为他们是由编码的,比如说GBK、UTF-8、UTF-16等等,Git强烈建议使用UTF-8;所有语言使用同一种编码,既没有冲突,又被所有平台所支持。

1.2 将文件添加到版本库

Git将文件提交的版本库需要两步,首先我们得有一个新的文件;例如readme.txt

第一步:使用git add命令,告诉Git把文件添加到暂存区(类似标记提交,这个概念后面会说)

$ git add readme.txt

执行上面的命令,没有任何显示;这就说明对了。

第二步:用命令git commit告诉Git,把文件提交到仓库

$ git commit -m "创建readme.txt文件"
[master (root-commit) 4d5ca19] 创建readme.txt文件
 1 file changed, 1 insertion(+)
 create mode 100644 readme.txt

简单解释一下git commit命令,-m后面输入的是本次提交的说明,为了日后你能看懂这次提交的信息。


2. Git 基础操作

2.1 版本回退

我们现在已经可以对Git进行简单提交工作,让我们多做几次提交.
这里我们做了三次修改,使用git log命令查看日志:

$ git log
commit acc37243bc5876c0f67c66671bc64e8fbc95c34b (HEAD -> master)
Author: yunli <2586006873@qq.com>
Date:   Wed Apr 17 22:29:59 2019 +0800

    第三次提交

commit 6d2e29cfa58766ceae0c22bff66f7cc1c5215672
Author: yunli <2586006873@qq.com>
Date:   Wed Apr 17 22:28:31 2019 +0800

    第二次提交

commit b37dba7dae2ea8d31377a393f6325f53d4501b70
Author: yunli <2586006873@qq.com>
Date:   Wed Apr 17 22:28:17 2019 +0800

    第一次提交

git log显示的信息比较复杂,我们可以添加--pretty=oneline参数:

$ git log --pretty=oneline
acc37243bc5876c0f67c66671bc64e8fbc95c34b (HEAD -> master) 第三次提交
6d2e29cfa58766ceae0c22bff66f7cc1c5215672 第二次提交
b37dba7dae2ea8d31377a393f6325f53d4501b70 第一次提交

在我们使用git log命令的时候,我们看到长串的类似acc37243...的是commit id(版本号),他可以让我们会到以前的任意一个版本。

现在我们说到本节的重点,如何回退到上一个版本;首先我们得知道我们当前在那个版本,在Git中用HEAD表示当前版本,在上面我们是用git log时,最新版本的commit id后面会有(HEAD -> master),这个就代表当前的版本。

上一个版本就是HEAD^,上上一个版本就是HEAD^^,多一个上次就多一个^,当到上100个版本时,我们可以简写成HEAD~100

现在,我们使用git reset命令回到上一个版本:

$ git reset --hard HEAD^
HEAD is now at 6d2e29c 第二次提交

我们可以看下日志日志:

$ git log --pretty=oneline
6d2e29cfa58766ceae0c22bff66f7cc1c5215672 (HEAD -> master) 第二次提交
b37dba7dae2ea8d31377a393f6325f53d4501b70 第一次提交

看一下文件,还真是回到以前的版本了呢

但是,如果我们这个操作时误操作怎么办呢?还有没有可能回到刚才那个版本呢?这个好像真的回不去了,但是还是有解决办法的;但是前提时你的控制台窗口是没有关闭过的,让我们找一找上次git log信息,找到以后我们可以看到commit id,我们可以使用这个commit id恢复。

$ git reset --hard acc37243bc58
HEAD is now at acc3724 第三次提交

commit id不需要全部输入,只需要输入前几位就行了,Git会自动去找,但是还是建议多输入几位,一面Git找到重复的,没办法确定唯一性;这样我们就回复过去了

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅修改HEAD指针,只是指针动了一下,速度肯定很快啦;如下:

2.2 工作区和暂存区
暂存区

在我们使用git init创建好版本库后,文件夹中会自动出现一个.git文件夹,这个就是我们的版本库;Git的版本库中有很多东西,其中就有一个称谓stage(或者叫index)的暂存区,还有Git给我们创建好的第一个分支master,以及指向master分支的指针HEAD

前面我们说到把文件添加到Git版本库的步骤:

  1. 使用git add把文件添加到暂存区;
  2. 使用git commit命令将暂存区的文件提交到版本库;

在我们创建Git版本库的时候,Git帮我们创建了一个默认的分支master,所以我们现在使用git commit命令,就是往master分支提交更改。

注意:

  • 这里我们可以使用提交内容的时候,文件的状态也会随之变化,这里我们可以使用git status [-s]来查看文件的实时状态。
工作区

这个就更简单了,除了.git文件夹以外,你所能看到的文件夹和文件都在我们的工作区中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值