什么是git
git是在我们写代码的时候帮我们进行代码版本管理的工具。他是一种非常高效的方式,避免了我们人工的每次对自己缩写的代码版本进行更改,现在有很多的软件本身就自带了版本管理功能。
git是一个程序,也可以说是一个软件,但是git不会像正常的软件一样启动,他需要在终端用命令行的方式输入git的相关命令来进行操作。
git是怎么进行版本控制的
我们可以把文件夹想象成是一个文件展示台,在这个文件展示台下有一个后台,git在这个后台帮我们对这个代码文件版本进行管理。git决定了在这个展示台上该显示什么版本的文件。而在这个后台有一个专门负责档案管理的管理员(暂且叫他master)
先在文件夹里新建一个文本文件, 这个文件编辑好之后保存,这个文件就是第一个版本。文件的存档分为两步:
第一步,先告诉git要对哪些文件进行存档。在git里有一个暂存区,当你要对某些修改过的文件进行存档,需要先将这些文件添加到暂存区。master会自动把暂存区的文件变化记录到存档中。
然后, 在第二次修改这个文件的时候,master会再次存档,这样存档记录调就会有两条记录,文件中显示的内容是最新版本的文件内容。
当你有了多个存档记录的时候,就可以通过git在记录档案之间来回切换。文件中的显示内容就会显示当前所选版本的内容。
这些就是git中对文件的读档和存档操作。
git的分支
1.分支的使用
分支是git中一个非常重要的概念,英文名是branch。当你对一个文件夹进行初始化的时候,就自动对这个文件夹创建了一个分支。可以把每一个分支理解为一个档案管理员。之前的每一次读档和存档的操作都是在master的分支当中。
在一开始,git会自动给你创建一个名叫master的管理员分支,当你在master分支下创建一个新的分支,比如说叫fixbug,可以理解为git帮你分配了一个新档案管理的管理员。git会将master管理员的档案记录条上最新的存档记录作为fixbug一开始工作的档案记录条的初始记录。(每次工作时只能选择一个档案管理员)
需要使用那个管理员,就需要先切换到对应的分支。例如,我现在要使用fixbug管理员,我需要先切换到fixbug分支中。如下图:
然后我把这个文件的名字改为分支二,然后记录存档。如下图:
接着我把分支切换回分支master,会发现这个文档的名称又变回了原来的名字。如下图:
当我再切换回fixbug的分支的时候,文件的名字就又变回了分支二。
2.分支的特点
1. 在新的分支中,同样可以对文件进行读档和存档,每个分支使用的都是各自的档案记录条,相互不冲突。上一个分支的最后一个记录作为下一个分支开始的记录。
2. 在git中,不仅在分支中可以切换不同的存档记录,而且分支之间也可以相互切换。当你切换分支的时候,文件夹中的文件信息就是切换到的分支下最后一次存档的状态。
3. 在分支中修改文件内容的时候,不会影响之前或者其余的分支,分支和分支之间是独立的。
4. 分支是可以随意创建的。也可以合并分支。
分支举例
比如我要用git开发我自己的个人网站,我会把网站的初始文件都放到一个文件夹中,然后用git进行初始化。 这样git就默认给我分配了一个master 的分支。先将初始化的文件在master分支存档。如下图:
然后自己新建一个develop 分支,master分支专门用来管理可发布代码的版本,而主要的开发工作在develop分支进行。(前提是切换到develop分支)
在开发过程中,每次开发完一个功能都进行一次存档。开发完之后,假设网站可以暂时上线了,那么就需要将develop分支合并到master分支上。切换回master分支,然后把develop分支合并到master分支上。(注意: master上合并只是将develop分支最后一个最新的存档记录复制到了master分支的最后一个存档记录上,因此develop分支仍然存在。)
这样,master分支上就有最新的代码,就可以发布上线了。由于develop分支仍然存在,可以继续在该分支上接着开发网站的其他功能。
假设在这个时候发现网站上有一个bug,这个时候就需要在master分支下新建一个bugfix 分支,切换到bugfix分支对bug进行修改。修改完之后提交并进行存档。
接着切换回master分支,再把bugfix分支合并过来,就完成了对bug的修复。然后还要将master分支的代码合并到develop分支上,这样可以把develop分支上存在的bug也修复了。
依次重复。
分支的优点
使用分支可以让各个业务的代码保持独立,不同的代码处理需求可以同步进行,避免了相互影响。完成之后可以再合并到专门用来发布代码的分支中。分支内部的存档、读档、创建、切换、合并等功能就是git实现代码版本管理的核心。
文章资料参考:YouTube 学习呀三木git介绍