ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Git(一)

2022-08-04 19:33:33  阅读:95  来源: 互联网

标签:git -- 标签 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

标签:git,--,标签,Git,版本,分支
来源: https://www.cnblogs.com/wangwt123/p/16551816.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有