2020-07-19

# git版本管理

## git工具的作用

了解git工具,首先要了解它的作用,进而了解如何去使用这个工具。

git主要有三个作用

+ 版本迭代

+ 远程仓库

+ 分支管理

## 场景描述

简单来讲,我有一个项目,这个项目可以是代码,也可以是其他的,甚至可以是一首诗(即一个简单的txt文件)。

现在简化项目内容,我的项目就是在txt文件里写一首诗。

于是,我迅速的完成txt文件的新建,命名和编辑,得到了如下的文件:

```

文件名:poem.txt

内容:

第一段

第二段

第三段

```

写完之后我对第二段不满意,要删掉,但是又怕以后后悔,所以只能保留poem.txt同时复制一份poem(1).txt,文件内容如下

```

文件名:poem(1).txt

内容:

第一段

第三段

```

如果我进行多次类似的修改,甚至发给其他人帮我修改,又想保留之前的内容,那么我会有很多类似的txt文件。当某次需要寻找某一个版本的txt时,会发现已经乱了。这时候就需要一个工具可以帮我记录每次的修改,帮我回退到我想要的那个版本。这个需求就叫做**版本迭代**。

git就可以实现这个功能。git就类似一个仓库,通过git新建一个*仓库*,然后把项目文件放到*仓库*里面。每次修改都重新把文件加入到仓库,仓库会记录你本次都对仓库里的文件做了什么改动,并可以随时把文件的版本退回到某一次修改的版本。

我在自己电脑上建了一个仓库,放进去了一个项目,可是别人想看我写的诗,我只能通过复制粘贴给他。如果我是一个大诗人,有100000个人想看的写的诗,那我一个个的发给他们就有点麻烦。或者我把我写的诗放在我的硬盘里,如果有一天硬盘坏了,诗就没了。为了解决上述问题,我可以把我的诗放到“云”上,git同样支持通过命令上传到互联网上。这就是git的**远程仓库**功能。github就是一个提供远程仓库的网站,每个注册账号的人都拥有github提供的远程仓库。

有一天,诗歌爱好者杜小甫读到了我的诗,想和我共同创作,我也认可了他的能力,让他和我一起写一首诗。但是他直接在我的仓库里进行诗歌创作,可能会覆盖掉我写的内容。于是我让他在另外一条分支去写诗,他写完之后经过我的审核才能并入到我的主分支。这就是git的**分支管理**。

## git命令与使用

windows直接官网下载git bash 

Linux/mac直接命令行安装

### 本地仓库

+ 本地仓库的创建与基本使用

  1. 新建文件夹peom_project,作为*仓库*。通过以下命令将peom_project文件夹变成*仓库*。

    ```bash

    cd /xx/xx/peom_project/ #cd 进入刚才新建的文件夹

    git init #将peom_project文件夹创建为新的仓库,创建完成后文件夹中会多一个新的隐藏文件夹.git

    ```

  2. 在文件夹下创建新的poem.txt文件,并把我的诗写在文件里面。此时,poem.txt并不在仓库里面,它只是在文件夹里面。需要使用以下命令将该文件加入到git仓库。


  3. 将文件添加到仓库


    ```bash

    git add poem.txt # 通过add添加文件到暂存区

    git commit -m "my poem" # 通过commit将文件提交到仓库

    ```


    初次使用**git commit**命令会被告知需要输入名字和email,此处的姓名和email只是为了标注提交人的身份,使用**git config**命令配置好即可。

    ```bash

    git config user.name "mrnext"

    git config user.email "313252625@qq.com"

    ```

    需要注意的是通过add只是加入到一个清单里面,并没有把文件加入到仓库,通过git commit会将清单里面的文件一次性加入到仓库里面。例如,我可以将两首诗都加入到我的仓库。

    ```bash

    git add poem1.txt # 通过add添加文件到暂存区

    git add poem2.txt

    git commit -m "my poem v2" # 通过commit将文件提交到仓库 -m 后面跟的字符串为本次提交的备注。

    ```

  4. 查看日志文件


    git仓库会记录每一次commit的改变,通过git log命令去查看这些信息。

    ![avatar](./gitpic/log.png)

    可以看出我一共在库里面提交了2次,每次提交的用户名,时间和备注信息均会被展示出来。

  5. 作业


  * 下载git bash,使用bash新建一个git仓库,在git仓库里添加一个txt文件

  * 尝试改动文件,进行第二次提交

  * 了解git diff的用法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。