版本控制工具Git基础介绍


2022年7月26日下午2点48分| 黄强 | 1999

介绍

1. Git是什么?

通俗来讲,Git就是一个开源的分布式版本控制系统。

2. 什么是版本控制?

版本控制就是一个记录文件变化内容,随时可以访问文件历史提交任意一个时刻内容。

3. 分布式是什么,还有集中式吗?

是的,目前主流的两种版本控制系统中,一种是以Git为代表的分布式版本控制系统,另外一种是以SVN为代表的集中式版本控制系统,根据字面意思来理解,集中式版本控制系统就是把所有代码都集中在一起管理,共同开发的所有成员统一从这里进行修改,提交,在这种集中式管理的情况下,存在多人修改同一份文件不好控制内容,甚至一旦服务器宕机所有人都无法去修改代码,协同工作的情况出现,而分布式版本控制系统恰恰就针对这些痛点进行改良,每个人都可以拉取一份最新的代码到计算机本地进行修改,相比集中式的代码管理,更为自由。

使用

1. 安装

1) CentOS等Linux环境下

CentOS使用yum install git命令进行安装,其他系统参考软件包安装方法同样安装即可。

2) Windows

直接去Git官网https://git-scm.com/下载最新版本Git安装正常软件安装流程安装即可。

3) MacOS

一般情况下MacOS系统自带Git,可以使用命令git –version检查,如果存在版本号,则无须安装,如果没有,也可参照windows安装方法去官网直接下载git进行安装即可。

website/blog/editor/media-qt8m33k.png

2. 配置

Git安装完成后,需要进行设置好提交人与邮箱才能使用,目的是在多人提交的过程中区分代码分别是谁提交的,方便排查错误解决问题,配置文件通常是存放在用户文件夹下的一个名为.gitconfig文件。

website/blog/editor/media-wpu8thqj.png

当然也可以用Git自带的git config进行配置设置,例如使用git config --global user.name "John Doe",双引号内的内容就是将来在提交历史中展示的用户名,git config --global user.email johndoe@example.comuser.email后面展示的邮箱则是将来提交用户名的邮箱。

1. 使用

初始化仓库

当我们需要把一个项目交给Git管理去进行版本控制的时候,首先要做的是为项目建立一个根文件夹,以后项目中的所有代码都放到这个文件夹里面,例如创建一个HelloWorld文件夹,并将它初始化为Git仓库,进入命令行工具cd到HelloWorld文件夹下,执行git init即可。

website/blog/editor/media-94bd80se.png

可以看到,Git已经对我们的文件夹进行管理,并且创建了一个master分支,分支的概念后面再介绍。

添加修改

我们现在创建一个名为test.txt的文件,并往文件中写入一些内容,将文件提交给Git管理,这里有几个概念,Git管理的文件有三种状态,已修改、已暂存、已提交,已修改表示当前文件发生修改,但是版本目前没有记录,意味着修改没有保存到数据库中,已暂存表示对当前文件进行标记,下次提交会将当前标记的更改提交到数据库中,已提交代表文件此次更改已经提交到数据库中,随时可以回到当前提交状态,我们可以使用命令git add xxx.xxx或者命令 git add .或者命令git add -A将单个文件或者当前所有文件,或者所有文件添加到暂存区,这时,添加的文件就都变成了已暂存的状态,继续使用命令git commit -m 'commit message'将暂存区所有文件提交到本地仓库变为已提交状态。

website/blog/editor/media-s5mfxkk.png

此时输入命令git log

website/blog/editor/media-e18rlgdc.png

可以查看到我们刚刚提交的记录,这个时候对文件进行修改,添加一行test

website/blog/editor/media-5fy2kll.png

继续执行添加暂存,提交的操作

website/blog/editor/media-hb7cyxwf.png

再用git log命令查看一下提交内容就可以看到两次提交的历史记录了。

分支介绍

讲完了Git简单使用,接下来介绍一个Git一个很重要的概念,分支,正常我们开发的过程中会遇到多人开发同一个项目的情况,或者存在线上版本与开发版本的情况,这个时候如果都在一条主线上进行开发,容易产生冲突问题,并且不好回滚代码,分支的概念,就很好的解决了这个问题,通常我们的项目会有一个主分支,代表项目正常线上运行的分支名为master或者main分支,前面提到过初始化仓库Git就会给我们的代码仓库创建一个master分支,当我们多人开发的时候,可以在master分支的基础上为每个人创建一个分支,等开发完成,每个人将自己的分支依次合并到master分支上就可以了,或者说我们线上正常运行的版本用master分支,平时开发的版本建立一个develop分支,确认开发完成,代码没有问题,再将develop分支合并到master分支对代码进行构建、部署即可。

创建分支

创建分支,使用命令git checkout -b develop即可

website/blog/editor/media-yu96eqtn.png

这条命令是

git branch develop

git checkout develop

的缩写,其中第一条命令意思为创建develop分支,第二条命令为切换到develop分支,此时git会为我们在目前master分支当前版本的基础上,创建一个develop分支,我们在develop分支上做的任何更改,不会影响master分支版本的内容,除非我们手动将develop分支合并到master分支上,develop分支的所有修改提交记录才会合并到master分支上。

合并分支

我们首先在develop分支上做一下改动,将test.txt文件夹再增加一行内容如下

website/blog/editor/media-944zrxhyc.png

此时执行暂存,提交的操作

website/blog/editor/media-32wb1rtm.png

我们用git log命令来查看一下提交记录

website/blog/editor/media-hssjqg1d.png

这个时候,我们用命令,git checkout master切换回master分支

website/blog/editor/media-885savpb.png

查看文内容

website/blog/editor/media-uwbd11gn.png

发现我们刚刚在develop分支上做的修改并没有影响到master分支内的内容,这个时候我们执行git log查看,也只有两条提交记录。

website/blog/editor/media-7qhma5lt.png

这个时候如果我们需要将develop分支的内容应用到master分支上,只需要先把当前分支切换到master,执行命令git merge develop即可。

website/blog/editor/media-s39w84bv.png

再使用git log查看提交历史

website/blog/editor/media-arxel8m.png

最新的develop修改已经并入master分支上了

关于Git的基本使用,到这里讲的就基本差不多了,相信大家通过本篇文章的讲解能够简单的通过Git对代码进行一些基本的控制。