git分布式及管道的学习

一、Git

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

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

二、分布式

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

Git安装

Git官网:https://git-scm.com/
1、安装包放在E盘中,一直点击下一步安装,将bin地址添加到Path环境变量中即可。
2、验证是否安装正确:在cmd控制台中输入git version。


3、配置身份
使用之前我们首先需要配置身份(账户、email)

git config --global user.name "名字"
git config --global user.email "邮箱地址"

 

 

4、验证配置是否成功
git config --list

 

 

 


5、Git核心原理

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

 

 

Git使用

本地已有代码,需要使⽤git来进⾏管理
本地没有代码,需要创建⼀个新的git版本仓库
本地没有代码,也没有仓库,去GitLab平台下载⼀个git版本代码仓库.使⽤到的命令为:git clone
1、在本地创建文件夹(此处是在桌面上创建的)

2、在文件夹里创建仓库
在这个文件夹里面创建仓库(存储代码的目录),最后会把仓库里面的代码提交到私有云(公有云)的平台。

打开cmd的控制台,进入到learnGit的目录

 

 

 

创建仓库的命令为:git init

Git命令

git本地仓库,就是⼀个git的版本库,也就是说在代码⽬录下的⼀个.git的⽂件夹,这就是管理⽂件信息的⽬录,也是git核⼼的本地仓库。github是共有代码托管平台,⽽Gitlab是私有代码托管平台。
A、本地有代码进⾏管理
直接到这个⽬录,执⾏git init就可以创建本地仓库了,那么后⾯的所有代码修改,都会记录相关的信息。
B、需要新创建本地仓库
git init来创建新的仓库信息。具体创建的过程如下:

1、在此目录下建index.txt记事本(这个记事本相当于我们工作中的文档和代码)

 

 

 

 

2、添加文件

git add 文件名称
添加不代表成功,只是放在了暂存区,还需要提交文件到仓库
3、提交文件到仓库

git commit -m "备注"
双引号里面必须填写备注,备注告诉大家这是在干什么
3、查看仓库状态:

git status
能看到是否有文件未添加、未提交。

 

 

 


4、Git生命周期

它的⽣命周期可以完整的描述为:

git init #⽣成git⼯作区
git status #掌握git⼯作区的信息
git add #确认需要添加以及跟踪的⽂件
git commit -m "注释信息"#提交到本地仓库

 

 

 

5、查看Git的log(日志)

git log --oneline #查看简陋的信息
git log
git log -1 #显示最新的⼀条提交记录信息
git log --all --graph #查看提交的版本演变
git reflog #记录git所有的操作,包含了提交以及回退

查看所有日志信息:git log

 

 

查看简陋的信息:git log --oneline

 

 

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

 

 

查看提交的版本信息演变: git log --all --graph

 

 

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

 

 

6、Git回退

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

HEAD^表示的是上⼀个版本
HEAD^^表的是上上个版本。
git reset --hard 版本ID
git reset --hard HEAD管理
使用版本回退场景:
晚上上线,发现严重的问题,最后结论是本次发布取消,那么就需要版本回退,此时测试需要完成回归测试。
备注:结合git reflog,可以回到过去,也是可以到未来的版本信息,也就是回退了,也是可以还原回去的,但是每次在本地修改文件后都要添加和提交文件。

 

 

6、Git标签

git tag可以理解为:这对每个版本加上⼀个标签。标签涉及到的命令具体可以总结为:

git tag -a tagName -m 标签注释:创建⼀个标签,并且加上注释
git tag 查看标签信息
git log --decorate #查看标签的详细信息
git log --oneline --decorate #命令如上是⼀样的
git tag -a标签名称 commitID -m 标签注释
git show tagName #查看标签的具体详细的信息
image
image

查看两个文件的差异:

diff 文件1 文件2
image
image
Git分⽀管理

master是主⼲分⽀,⼀般我们的分⽀可以分为test dev stage的分⽀。分⽀涉及的命令具体如下

git branch #查看当前的分⽀
git branch test #创建⼀个测试分⽀
git checkout test #切换分⽀
git checkout -b 分⽀名称#创建新的分⽀并且⽴即切换到新的分⽀信息
git branch -D 分⽀名称
git merge 分⽀名称#分⽀的合并信息,如下就是显示的是把test的分⽀代码合并到master的分⽀

环境:
测试环境
开发环境
预发布环境
线上环境

test:测试环境
dev:开发环境
master:主干分支,专门发布到线上(预发布/生产环境)
流程:
1、程序员在dev开发完的功能合并到test分支
2、测试这边在test测试完成后,合并到master
3、最后master分支代码的上线

 

 

 

 



问题:测试完成后开发合并代码到master后,测试还需要测试吗?
需要测试,在合并过程中可能会出现代码的丢失或者代码的冲突。

 

posted @ 2022-08-08 00:01  LaraCroft  阅读(99)  评论(0编辑  收藏  举报