微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Git一

一、Git介绍

Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件,它采用了分布式版本库的方式, 不需要服务器端软件支持。可以说它是一个开源的分布式版本控制系统,用于敏捷高效地处理任何小或者大的项目。

Git 分布式版本控制系统 ,本地版本管理

github :公有云代码托管平台

gitlab:私有云代码托管平台

二、集中式&分布式

1、集中式

从中央代码服务器获取具体的代码,把代码下载到自己的本地,然后把代码,必须在有网络的情况下提交到中央服务器。典型的产品是SVN,所谓集中式的版本控制系统,只有一个中央数据仓库,如果中央数据仓库瘫痪或者是不可访问的情况下,所有的使用者无法使用SVN,无法进行提交或者备份文件

2、分布式

分布式版本控制系统,在每个使用者电脑上就有一个完整的数据仓库,没有网络依然可以使用Git。当然为了团队协作,会把本地数据同步到GitLab服务器或者是GitHub等代码仓库。

三、Git安装

在git的官网下载https://git-scm.com/,下载完成后,一路next即可。并将bin目录添加到path环境中。

在控制台里输入如下命令,说明Git安装成功。

四、Git配置

1、system

针对任意登录到Linux系统的用户生效

2、global

全局,只针对当前登录用户生效,git配置写入~/.config/config

3、local

本地,只针对某⼀个文件夹生效。 ⼀般配置的时候,使用的是全局配置,建议使用全局配置的式方。在windows系统里具体配置name和email如下:

五、Git核心原理

操作的⼀般都是工作目录,如果执行了git add的命令后,那么就会从工作区进入到暂存区,如果再执行了git commit的命令后,等于是从暂存区进⼊到本地仓库,如果再执行git push,就是从本地仓库进⼊到原地仓库。本地仓库主要记录的是所有文件修改删除,这些Git都会记录下来,目的是可以进行历史回退,追踪信息。

1、创建Git工作目录

首先在windows里新建一个名为“learnGit”的文件,此时在控制台里输入创建仓库的命令:git init

此时会出现:.log

从而生成git工作区。

2、创建Git暂存区域

此时在名为“learnGit”的文件下,创建一个名为“index.txt"的文件文件里假设写入如下内容

此时在文件在控制台输入如下命令:

可以看到暂存成功,当然在暂存区域的文件也是可以进行撤销,一旦提交到本地仓库,会很难撤销。

3、提交本地仓库

使用命令:git commit -m "注释信息"

六、Git生命周期

总结上述的各个区域,它的生命周期可以完整的描述为:

git init →生成git工作区

git status →掌握gitt工作区的信息

git add →确认需要添加以及跟踪的文件

git commit -m "注释信息"→提交到本地仓库

七、Git日志

查看Git的日志信息,主要使用到的命令具体汇总如下:

• git log --oneline →查看简陋的信息

• git log →查看所有的日志信息

• git log -1 →显示最新的一条提交记录信息

• git log --all --graph →查看提交的版本演变

• git reflog → 记录git所有的操作,包含了提交以及回退

八、Git回退

git的版本管理是通过指针来进行管理的,这个指针就是HEAD,那么也就是说HEAD表示当前版本, HEAD^表示的是上⼀个版本,HEAD^^表的是上上个版本。

Git回退使用的命令为:

git reset --hard 版本ID

git reset --hard HEAD管理

备注:结合git reflog,可以回到过去,也是可以到未来的版本信息。

假设在名为“learnGit”的文件下,创建一个名为“login.txt"的文件文件里假设写入如下内容

此时,通过上述的命令输入即可:

九、Git标签

git tag可以理解为:这对每个版本加上一个标签

标签涉及到的命令具体可以总结为:

• git tag -a tagName -m "标签注释":创建一个标签,并且加上注释

• git tag -a 标签名称 commitID -m "标签注释"→新增标签

• git tag →查看标签信息

• git log --decorate →查看标签的详细信息

• git log --oneline --decorate →命令如上是一样的

• git show tagName →查看标签的具体详细的信息

如下图所示:

其中:diff是查看两个文件的差异

在windows里可以看到,再index.txt的文件里新增了"Handoop"和"Spark"

其实,在linux里会更加的直观化

十、Git分⽀管理

1、前言:

1-1、环境:测试环境、开发环境、预发布环境、线上/生产环境

         其中:预发布环境:将测试环境(测试环境+开发环境)在还没有上线之前,先在该环境里运行一下,将问题提早暴露出来,防患于未然。

         测试环境和开发环境是不一样,因为设计出的内容会涉及到不同的版本等问题,会出现混乱。

1-2、代码分支:test :测试环境、dev:开发环境、master:主干分支,专门发布到线上(预发布/生产环境)

1-3、流程:a、程序员在dev开发完的功能合并到test分支;

                    b、测试这边在test测试完成后,合并到master;

                    c、最后master 分支代码的上线。

         需要: 1、合并过程中可能会出现代码的丢失 2、合并过程中会出现代码的冲突

2、创建分支:

master是主干分支,⼀般我们的分支可以分为test dev stage的分支。

创建分支涉及到的命令具体有:

git branch →查看当前的分支状况

git branch 分支名称→新建分支

3、切换分支

切换分支涉及到的命令具体有:

git checkout 分支名称 →切换分支

git merge 分支名称→分⽀的合并信息,

如下就是显示的是把test的分⽀代码合并到master的分支:

以上述的流程为例:dev →test →master

dev转test:

test转master

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐