Git

标签: Git

一、安装及基本操作

1.Git简介:

Git(全局信息追踪器)。
Git是一个分布式版本控制工具,Git的使用中央仓库不是必须的,用户本地就是一个完整的版本仓库,代码 的前进、回退、删除等操作都可以直接在本地操作,不需要中央仓库。但是,在实际的操作中,为了能够和其他同时快速沟通以及合并代码,一般还是会搭建一个中央仓库。Git对分支的管理非常友好,可以快速创建或者合并分支。

Svn集中式的版本控制工具,Svn中,必须要有中央仓库,所有的版本信息都保存在中央仓库中,代码的前进、回退、删除等等操作都需要在中央仓库中进行,用户本地保存的只是版本仓库的一个副本,Svn中的分支非常臃肿。

2.Git安装:

git在linux上安装非常简单,本文主要讲解在windows下的安装

2.1 官网下载

官网链接
在这里插入图片描述

2.2 安装

双击一直安装,一致默认安装即可。

2.3 安装成功

安装后在开始中会出来git相关的菜单
在这里插入图片描述
同时鼠标右键也有git相关的菜单选项
在这里插入图片描述

2.4 配置个人信息

安装成功我们还要完成最后一步设置。设置个人信息
在这里插入图片描述
输入如下命令:

git config --global user.name "tang"
git config --global user.email "[email protected]"

设置用户名跟邮箱。
在这里插入图片描述

3.创建版本库

版本库也就是我们平时说的仓库,repository。其实也就是个文件夹,只是这个文件夹被git管理,该文件夹

3.1 创建文件夹

在这里插入图片描述
创建好后进去打开命令界面
在这里插入图片描述

3.2 初始化操作

通过git init命令吧这个目录变成Git可以管理的仓库,创建成功后在该文件夹会多出一个.git的文件夹。
在这里插入图片描述
在这里插入图片描述
.git文件是一个 隐藏文件,打开查看隐藏项目后便可看到。
Git目录是用来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然就乱了,就把Git仓库给破坏了。

4.基本操作

4.1 添加文件到版本库

①创建一个文件

注意:在windows系统中,编辑文件不要使用记事本操作,因为在操作中文的时候会有问题,推荐使用Notpad++,但是编码方式得设置下。
在这里插入图片描述
方式一:直接在外面建
在这里插入图片描述
方式二:直接通过命令
在这里插入图片描述

②执行git add命令添加到仓库

git add hello.txt

③执行git commit命令提交

在这里插入图片描述
commit -m的-m后面跟的是本次操作的备注说明信息。最好是有意义的,也就是下次看到这个说明就清除提交看什么内容
为什么Git添加文件需要add,commit分为两步?因为commit可以一次提交很多文件,所以你可以多次add不同的文件。

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add files"

4.2 status和diff命令

介绍:

命令 说明
git status 查看当前库的状态,add之前和commit之前都可以查看状态
git diff 是difference的简写是用来查看文件的变化的(工作区和版本库)
git diff 文件名 查看文件修改前后的变化,在add命令之前执行

5.版本回退

5.1 log命令

随着操作的文件越来越多,我们就会忘记之前的很多操作,这时我们可以通过log命令来查看历史信息。

在这里插入图片描述
git log命令显示从最近到最远的的提交日志,每条日志信息占了五行记录,如果日志比较多的情况下。我们可以在命令后添加 -pretty=oneline 单行来显示日志信息
在这里插入图片描述
提示:‘27492ed…’这一长串的信息既是版本号、

5.2回退

为了便于演示又对文件修改了一次,log有了三次记录

$ git log read.txt
commit a1d1909f554a531acdec30d96ac67db9047599f8 (HEAD -> master)
Author: dpb <[email protected]>
Date:   Wed Jan 30 21:08:42 2019 +0800

    third update file

commit 27492ed2ca522c05a9293a0c48e876a81e795522
Author: dpb <[email protected]>
Date:   Wed Jan 30 20:51:44 2019 +0800

    first update file

commit cfe85b8a01fb09583f29f093915c9bb5b788123f
Author: dpb <[email protected]>
Date:   Wed Jan 30 20:46:54 2019 +0800

    first add file

现在我们有三个版本即 ‘third update file’,‘first update file’,‘first add file’
查看当前文件内容:

$ cat read.txt
hello git
hello git 2
hello git 3

回退致上一版本:

回退致上一版本:git reset --hard HEAD^

$ git reset --hard HEAD^
HEAD is now at 27492ed first update file

[email protected] MINGW64 /c/tools/GitResource/gitRepository1 (master)
$ cat read.txt
hello git
hello git 2

[email protected] MINGW64 /c/tools/GitResource/gitRepository1 (master)
$ git log read.txt
commit 27492ed2ca522c05a9293a0c48e876a81e795522 (HEAD -> master)
Author: dpb <[email protected]>
Date:   Wed Jan 30 20:51:44 2019 +0800

   first update file

commit cfe85b8a01fb09583f29f093915c9bb5b788123f
Author: dpb <[email protected]>
Date:   Wed Jan 30 20:46:54 2019 +0800

   first add file

执行以上命令我们发现文件内容回退到了上一个版本,log中也看不到’third update file’中的信息了,好像这个版本从来没有出现过一样。

回退致最新版本: git reset --hard a1d1909f5

$ git reset --hard a1d1909f5
HEAD is now at a1d1909 third update file

[email protected] MINGW64 /c/tools/GitResource/gitRepository1 (master)
$ cat read.txt
hello git
hello git 2
hello git 3

首先我们发现信息被我们找回来了,其次‘a1d1909f5’是最新版本的版本号,虽然不全,但是前几位要正确,git会自动匹配
  Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向first update file

示意图:

在这里插入图片描述
回退后:
在这里插入图片描述
版本回退其实就是指针的改变。有时候我们想要回退到以前的最新版本,这时候log命令查看不到对应的版本号,在次场景下我们可以通过git reflog来查看
在这里插入图片描述

总结:

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令 git reset --hard commit_id。
切换前,用 git log可以查看提交历史,以便确定要回退的版本。
要切换未来,用 git reflog查看命令历史,以便确定要回到未来那个版本。

原文链接:加载失败,请重新获取