一、前言
git是一个非常强大的版本管理工具,它出现的目的是为了解决这样一个问题:
我们希望能够在前一天代码的基础上继续开发,但如果今天写的代码有问题,我也能无损的退回前一天的代码状态重新开发。
这种需求其实就是“版本管理”的概念,更加通用的说法是我们希望能够在各个版本的代码间无缝切换。
而这便是git的作用,它就可以让我们实现这一目的。
所以说它并不是某个特定语言所特有的功能,即使不是代码文件,也依旧可以使用它来进行版本管理。
二、下载使用
git官网为Git,可以直接去下载即可:
因为它是跨平台的,所以有多个平台版本,下载自己电脑合适的版本即可,比如这里点进入windows后,一般下载的就是64位安装版本的:
下载完成后是一个可执行文件,直接点击安装即可。
如果是初次安装,中间会有很多选项,如果你不清楚要不要选,那就都别管,一路默认安装即可。
安装完成后是没有任何反应的,这是很正常的事情,正常来说,此时你在电脑任意位置右键打开右键菜单后,就应该能看到下面这两个菜单项:
上面的那个菜单项是git的GUI版本,下面的则是命令行版本。
一般来说,这两个菜单项我们大部分时候都是用不到的,所以这里都不会对其介绍。
这里以正常的基础使用逻辑给大家讲解它的用法。
首先,版本管理都是对一个文件夹而言的,也就是说,git是用于管理某个文件夹下所有文件版本的。
所以第一步,我们需要自行找到一个需要版本管理的文件夹,比如这里我直接新建一个空的文件夹testgit
,并在终端中打开它:
想要对其该文件夹进行版本管理,那么第一步就是要先对其进行初始化,命令为git init
,这里的git
就是前面我们安装的git
,如果你发现无法使用,那么可能需要先重启一下电脑。
此时你就会发现,它会在当前目录下生成一个隐藏的文件夹.git
:
这个文件夹非常重要,它是git版本管理的核心,所有的数据都会存放在该文件夹内部。
所以如果你将这个文件夹删除了,那么你以前的版本数据也就随之丢失了。
初始化完成后,下一步我们就可以对其进行版本管理了。
比如我现在在里面新建了一个文本文件,里面随便写了点内容:
此时你就可以运行命令git status
查看当前的版本状态,此时你就会发现,它会提示出现没有被跟踪的文件。
简单来说就是,这个文件是新出现的,以前没有这个文件,它还没有被纳入到版本管理的数据库中,如果这个文件以后发生了变化,也无法被还原。
所以第一步我们一般都需要将本文件夹中“所有的文件”都要纳入到版本管理中去,所以就需要执行命令:git add .
:
此时可以看到,它已经被纳入到跟踪中去了,提示为这是一个新的文件
注意:因为这里使用的是命令行操作,所以此文件夹中如果你修改了任何文件数据,都需要首先运行git add .
命令将所有的修改行为纳入到跟踪状态。
比如此时如果我修改了这个tmp.txt
文件:
它就会报错,报错信息为修改没有被存储,这种错误和前面的新文件没有被跟踪类似,也需要用命令git add .
。
不过我这里只是演示,正常情况下一旦我们执行了git add .
命令后,都应该执行命令git commit
,将当前的版本状态进行提交存储。
如果是第一次执行提交操作,那么需要你先配置一下你的用户名和邮箱:
git config --global user.email "it@163.com"
git config --global user.name "ys"
上面两个命令是固定写法,只需要将后面的两个邮箱与用户名更换你自己的,然后运行一下即可。
提交操作如下:
注意需要添加一个-m
参数,后面填写你这次提交的注释。
上面说了这么多,其实最常用的命令就两个:
git add .
:如果你觉得你已经完成了一次修改,需要提交一次版本,那就可以执行一次该命令,将所有的修改信息保存。git commit -m
:该命令一般是紧接着上一个命令使用的,用于将你的所有修改提交到存储库中,彻底成为一个版本。
至于git status
,仅仅只是用来查看当前状态信息的,可用可不用。
看起来是不是相当的简单?
虽然看着是简单,但实际用起来估计大家又会遇到很多问题,所以下面我会再对常见的用法进行介绍。
三、理解git
什么暂存区之类的概念,网上有很多,如果你希望对其本质理解的更加透彻,可以参考网上其它教材,或者查看官方文档,都解释的很清楚。
但我个人觉得没必要,大部分人、包括我自己,都仅仅只是希望用好它,至少我到目前为止,其实都不觉得我理解了它的原理对我有多少用处,它仅仅只是一个工具而已。
所以这里我希望能用最直白的语言、概念,让你快速的学会使用它。
从我个人经验来看,所有使用git感到混乱的原因,并不是不理解git底层原理的原因,追根结底仅仅只是因为没有理解到“节点”这一简单的概念。