git实战教程

1.什么是git

git就是 分布式 版本控制 软件

软件:git也应该是从别的地方下载下来安装到我们电脑上的软件。

版本控制:跟毕业论文一样,先写好版本1然后交给导师,导师说不行,然后再改为版本2,然后循环下去,这就是版本。写论文的时候我们用的是拷贝文件的方式来做版本控制。

版本控制经历了4种发展状态:

1、文件拷贝方式,例如论文

2、为本地版本控制,对比于1的方式,本地版本控制在本地只会看见一个文件,在这个文件的背后通过这个本地版本控制软件把以前所有的版本都给你保存起来了。类似于打游戏的存档,你是看不见的,而是偷偷的给你存到某个地方去了。以后你想回到某个版本,只需要通过软件或者某个命令即可回到指定版本。对比1的方式,进步的点有电脑上不会看到那么多的文件了

git实战教程

3.集中式的版本控制

他会把所有的版本存到集中式的服务器中。集中式的本地是无法保存版本的,只能推到中心上去,缺点就是中心服务器挂掉了就没办法了。代表的软件有:svn

git实战教程

4.分布式版本控制

git实战教程

优点就是即使中心服务器挂掉了也没关系,我们自己的电脑上有一份,我就在自己的电脑上用,以后弄了个新的中心服务器,我可以把本地的版本全都推上去。相当于把版本分布的放在每一台电脑上都拷贝了一份,即使某一个单点故障了,它都不影响咱们代码的完整性。

2.git的作用

用于回滚。比如线上功能不行,要删掉的时候,我们可以快速回滚代码。

3.git的安装

git软件只需要安装在本地,则可以在本地完成v1,v2,v3的版本控制。如果想在中心也有,就需要在类似github的网站上存储。

git实战教程

linux,mac,win系统的安装方式均不同。linux和mac可以通过命令安装,而win可以下载安装包进行安装。

这里省略。可以去官网查看安装。

4.git管理文件的逻辑

  1. 先进入要管理的文件夹
  2. 初始化这个要管理的文件夹 git init
  3. 添加要管理的文件 git add .
  4. 生成版本 git commit -m 'v1'

其实在第四步之前应该有一个配置个人信息的步骤[仅需要在最开始的时候执行一次即可]

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

如果后续我们修改了要管理的文件夹里面的文件,我们在生成新的版本

git add .

git commit -m 'v2'

查看全部版本记录

git log

 git实战教程

5.git三大区域

git实战教程

6.git回滚

回滚至之前的版本:

git log 查看版本

git reset --hard 版本号 进行回滚

git实战教程

如果我们还想回到约饭功能需要用到新的命令

回滚至之后的版本

git reflog 

git reset --hard 版本号 进行回滚

git实战教程

7.git的分支

git实战教程

举个例子,原来项目里面有100个文件,我们后来修改了10个文件,新增了20个文件。

在git中的体现就是有c1版本变成了c2版本,而c2版本只保留了新增及发生变化的文件,而90个未修改的文件在c2版本里面不会被保存。

那么如果在c2与c1之间创建联系呢?就存在指针这个东西。c2版本是指向c1的,以后我们拿c2的版本,就会在c2中拿对比c1有变化的文件及通过指针再拿c1里面没有变化的文件。这也就保证了存储空间及速度更快。

随着时间的推移我们又新开发了一个版本c3,c3是在c2的基础上发生变化,所以c3里面也会保留自己更改的部分,而没修改的部门还是通过指针的形式指向了上一个版本即c2。

c4和c5都是在c3的基础上修改的。最后可以合并到c6里面。

 

 

 

 

 

9、git常用命令

git实战教程

 

初始化,让git帮助我们管理当前文件夹

git init

检测当前目录下文件的状态,即是否被git管理。

git status

把没有被git管理的文件,让git把它们管理起来

git add .

三种状态的变化

  • 红色:新增的文件/修改了原老文件  -> git add 文件名 或者 .
  • 绿色:git已经管理起来了  -> git commit -m '描述信息'
  • 生成版本

把已修改文件变成修改之前的状态

git checkout -- 文件名

git实战教程

 把以添加到暂存区的文件回到未添加之前的状态

git reset HEAD 文件名

git实战教程