栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

【软件编写说明文档与工程代码管理】git使用规范及使用流程

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【软件编写说明文档与工程代码管理】git使用规范及使用流程

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
TODO:写完再整理

文章目录
  • 系列文章目录
  • 前言
  • 一、gitlab的简介
    • 1.git用于代码管理
    • 2.git用于debug
  • 二、git的使用流程
    • (0)第0步:Git的安装
    • (1)第一步【下载、新建代码】:clone拉取下载项目/新建自己的项目方法
      • (1)方式一:【clone拉取下载项目到本地目录】
        • 步骤一:创建本地版本库(repository)
          • 第一步:创建一个目录
          • 第二步:把目录进行git初始化
        • 步骤二:从远程库拉取项目到本地
          • 第1步:创建SSH Key
          • 第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面,设置SSH和keys
          • 第3步:在远程库clone拉取下载项目到本地目录
      • (2)方式二:【在本地新建自己的项目】
        • 步骤一:创建本地版本库(repository)
          • 第一步:创建一个目录
          • 第二步:把目录进行git初始化
        • 步骤二:创建自己的远程库
          • 第1步:创建SSH Key
          • 第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面,设置SSH和keys
          • 第3步:创建远程库
        • 步骤三:把本地的版本库和远程的仓库进行关联起来
        • 步骤四:在版本库(repository)的目录中添加/创建自己的文件
    • (2)第二步【新建分支】:新建自己的工作分支方法
      • (1)分支的定义
      • (2)分支命名规范
        • 1)master分支为稳定版分支
        • 2)dev为开发者分支
        • 3)feature为功能分支
        • 4)bug-fix/为临时的修复bug分支
      • (3)分支相关指令
        • (1)查看当前分支
        • (2)创建自己的分支
        • (3)切换分支
        • (4)创建+切换分支
        • (5)删除分支
        • (6)合并某分支到当前分支
    • (3)第三步【代码开发】:(本地)功能代码开发方法【常用】
    • (4)第四步【提交代码到自己分支】:(在自己的分支内)提交代码【常用】
      • (1)原理
      • (2)提交流程步骤
      • (3)注意
    • (5)第五步【合并当前分支到某分支】:分支合并请求【常用】
      • (1)步骤
      • (2)解决冲突问题
      • (3)注意
    • (6)git的其他指令
      • git status
      • git diff [文件名]
      • git log
      • git reset
      • git tag -a -m <描述>
      • git tag -d
      • git show
  • 参考资料


前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!

本文先对git使用规范及使用流程做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章


提示:以下是本篇文章正文内容

一、gitlab的简介 1.git用于代码管理

Git是目前世界上最先进的分布式(代码)版本控制系统。对项目开发过程中使用git进行版本管理进行规范

为什么Git版本控制系统要比别的版本控制系统好用?因为GIt跟踪和管理的是GIt的修改,而不是文件【防盗标记–盒子君hzj】
.
.

2.git用于debug

可以在git的版本迭代中进行前后版本的对比,用回溯对比法进行代码debug

.
.

二、git的使用流程 (0)第0步:Git的安装

wim从官网直接下载即可,正常安装,但是不要有中文路径
ubuntu可以用命令行下载git

官网
https://git-scm.com/downloads
.
.

(1)第一步【下载、新建代码】:clone拉取下载项目/新建自己的项目方法

目的
目的都是为了把本地的版本库和远程的版本库进行同步操作

(1)方式一:【clone拉取下载项目到本地目录】 步骤一:创建本地版本库(repository)

版本库概念【防盗标记–盒子君hzj】

简单一点可以看作一个目录,创建这个目录可以被Git管理,在里面的文件,
你可以看到他的修改内容和历史修改痕迹,以及数据还原恢复。

步骤

第一步:创建一个目录
指令: 创建一个目录:    mkdir   目录名 

      跳转到当前目录: cd 目录名

      显示当前目录:     pwd
第二步:把目录进行git初始化
指令:初始化: git init
初始化成功之后,再该目录有一个.git的目录的
备注:.git文件的作用:这个目录是Git来跟踪管理版本库,不要去动。【防盗标记–盒子君hzj】

.
.

步骤二:从远程库拉取项目到本地

由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以在Github官网进行设置

第1步:创建SSH Key

在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Git Bash,创建SSH Key
ssh-keygen -t rsa -C “youremail@example.com”
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可【防盗标记–盒子君hzj】
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面,设置SSH和keys


为什么GitHub需要SSH Key?

因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。【防盗标记–盒子君hzj】

确保你拥有一个GitHub账号后,我们就即将开始远程仓库的学习
.
.

github和gitlab的区别
如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。这个方法我们后面会讲到的,相当简单,公司内部开发必备。

github大家都能看得到,gitlab只能公司内部人员看得到,相当于自己大了一个git的服务器【防盗标记–盒子君hzj】

最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。
.
.

第3步:在远程库clone拉取下载项目到本地目录

远程库其实和本地库的实质是一样的,而在GitHub创建一个Git仓库 ,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。【防盗标记–盒子君hzj】

(1)git clone指令

示例
git clone git@XXX:lXXX/git_test.git


备注:这里使用的是 https协议

注意Git仓库地址
你也许还注意到,GitHub给出的地址不止一个,还可以用git@github.com:zGuangYuan/Githubfile.git这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议。

使用https除了速度慢以外,还有个最大的麻烦是每次推送都必须输入口令,但是在某些只开放http端口的公司内部就无法使用ssh协议而只能用https【防盗标记–盒子君hzj】

.
.
(2)注意
使用gitlab要确保自己有开发权限,如没有则需向项目所有者申请,git.xair.cn:ligantong/git_test.git在gitlab上有提供

这种方式,则是直接把github仓库中的 Githubfile文件夹克隆到本地,本初始化这个文件夹为git可管理的文件夹,且默认本地版本库的master和远程仓库的master是关联的

如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。
.
.
.
.
.

(2)方式二:【在本地新建自己的项目】 步骤一:创建本地版本库(repository)

版本库概念

简单一点可以看作一个目录,创建这个目录可以被Git管理,在里面的文件,
你可以看到他的修改内容和历史修改痕迹,以及数据还原恢复。【防盗标记–盒子君hzj】

步骤

第一步:创建一个目录
指令: 创建一个目录:    mkdir   目录名 

      跳转到当前目录: cd 目录名

      显示当前目录:     pwd
第二步:把目录进行git初始化
指令:初始化: git init
初始化成功之后,再该目录有一个.git的目录的
备注:.git文件的作用:这个目录是Git来跟踪管理版本库,不要去动。【防盗标记–盒子君hzj】

.
.

步骤二:创建自己的远程库

由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以在Github官网进行设置

第1步:创建SSH Key

在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Git Bash,创建SSH Key
ssh-keygen -t rsa -C “youremail@example.com”
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面,设置SSH和keys


为什么GitHub需要SSH Key?

因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。

当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。

确保你拥有一个GitHub账号后,我们就即将开始远程仓库的学习【防盗标记–盒子君hzj】
.
.

github和gitlab的区别
如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。这个方法我们后面会讲到的,相当简单,公司内部开发必备。

github大家都能看得到,gitlab只能公司内部人员看得到,相当于自己大了一个git的服务器

最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。
.
.

第3步:创建远程库

远程库其实和本地库的实质是一样的,而在GitHub创建一个Git仓库 ,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。

(1)第一步:登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库【防盗标记–盒子君hzj】

(2)第二步:新建完成后,根据GitHub的提示,在本地的Github仓库下运行命令(把本地仓库和远程仓库进行关联)

.
.

步骤三:把本地的版本库和远程的仓库进行关联起来

执行命令:git remote add origin https://github.com/xxxx/XXX.git
此时这个命令就包含了git init了,也就意味着已经初始化这个文件夹为git 可管理的,且和远程进行关联。【防盗标记–盒子君hzj】

步骤四:在版本库(repository)的目录中添加/创建自己的文件

.
.

(2)第二步【新建分支】:新建自己的工作分支方法 (1)分支的定义

分支就像通道一样,不同的通道(dev)都能到达同一个终点(master),如果多人占用了一个通道,工作速度就会很慢,但是如果每个人都有一个分支(通道),他们就不会互相影响,高效率的完成自己的工作

我们每次提交(commit)了文件之后就会连成一条线,都会添加到一个个人分支,严格来说不是指向提交,提交并合并到主分支master才是真正的提交
.
.

(2)分支命名规范 1)master分支为稳定版分支

仅用于发布新版本,只有经过测试稳定后的代码才可合并到master分支,平时不能在上面干活。【防盗标记–盒子君hzj】

2)dev为开发者分支

日常开发的代码都合并到该分支,但不要直接在该分支上修改。

3)feature为功能分支

可用于某个功能开发过程中,可根据具体模块名或者功能名称来命名,该分支为主要的干活分支。

4)bug-fix/为临时的修复bug分支

需要修复bug时,特别是对于已发布版本的bug,需要新建该类型分支,用于紧急的bug修复。如果在开发功能过程中发现的bug,还不是已发布版本,则可在原来的功能分支上修复后再提交
.
.
.

(3)分支相关指令 (1)查看当前分支
git branch【防盗标记–盒子君hzj】
(2)创建自己的分支
方法一:git switch -c <分支名>
方法二:git branch -b <分支名>
(3)切换分支
git checkout <分支名name>
(4)创建+切换分支
git checkout -b <分支名name>
(5)删除分支
git branch -d <分支名name>
(6)合并某分支到当前分支
git merge 【防盗标记–盒子君hzj】

.
.
.

(3)第三步【代码开发】:(本地)功能代码开发方法【常用】

在一个干净的分支上进行开发之前,先将dev分支合并到本分支,以从最新的代码库开始开发

步骤

(1)切换到dev分支
	git switch dev

(2)拉取最新的代码
	git pull

(3)切换到自己的工作分支
	git switch <分支名>【防盗标记–盒子君hzj】

(4)将dev分支合并到本分支
	git merge dev

(5)开始进行自己的代码逻辑与算法开发

.
.
.

(4)第四步【提交代码到自己分支】:(在自己的分支内)提交代码【常用】 (1)原理

当前所在目录下,使用 git add 命令把文件添加到暂存器,再使用 git commit 命令把暂存器的文件提交到版本库的master分支上。最后使用命令:git push -u origin master ,就可以把本地的master 和远程的master关联起来
.

(2)提交流程步骤
(1)添加到暂存区
		定要看一下cmd/pwd窗口显示的当前所在目录【防盗标记–盒子君hzj】
		git add .
	或者 git add 

(2)添加到本地仓库master/dev分支上(提交)
		git commit -m ""

(3)上传到远程仓库
		git push
		推送到远程库(不成功,看前面的密钥是否建立)
		成功后,我们去Github官网看一看是否同步数据

(3)注意

每次提交代码时,最好都至少有一个完整的小功能,即对整个模块细分功能进行开发,每个小功能完成后即进行代码的提交,这样也让开发者在开发的过程中理清整体开发思路

评论要清楚说明该提交相对于上一次提交所做的工作
.
.
.

(5)第五步【合并当前分支到某分支】:分支合并请求【常用】 (1)步骤
(1)打开gitlab主页,并进入该项目主页,点击Create merge request按钮,进入合并请求页面New Merge Request

(2)点击Change branches,修改Source branch为自己开发的分支,修改Target branch为dev分支,最后点击Compare branches and continue

(3)修改的Title和Description,描述修改的内容【防盗标记–盒子君hzj】

(4)在Assignee中选择相应的项目管理者,提交后,后台会自动给这里选择的人员发送邮件进行通知

(5)点击Submit merge request
(2)解决冲突问题

情形1

问题
在自己分支上修改后,提交代码到远程仓库时发生冲突

产生原因
远程仓库的当前分支,与当前提交的分支,修改了同一个文件,导致冲突【防盗标记–盒子君hzj】

解决办法
将远程代码仓库拉取(pull)到本地仓库的工作区,这时Git会将可以合并的修改内容进行合并,并将不能合并的文件内容进行提示,开发者只需要对提示的冲突内容进行修改即可再次推送到远程仓库(add → commit → push),需要注意的时,修改时注意要与之前改动开发人员进行协商,防止会影响他人的相关功能。

情形2

问题
在自己分支上修改后,提交到远程仓库后,在gitlab上进行合并请求时,发生冲突

产生原因
修改的提交前,存在其他分支向目标分支提交合并,并且合并的内容中存在与当前分支修改的内容有冲突的地方,即可能修改了同一个文件

解决方法
点击上图的Resolve conflicts,跳到如下页面,会提示冲突的地方【防盗标记–盒子君hzj】
与相关开发人员商量使用哪种,简单选择一种时点击Use ours或者Use theirs,要编辑内容,则使用Edit inline模式,最后提交Commit to source branch
(3)注意

合并请求需要在网页端进行。代码提交到远程仓库后,需要在gitlab网页提交合并请求,请求将本分支的代码合并到dev分支
.
.
.

(6)git的其他指令 git status
查看全部文件状态
git status命令可以让我们时刻掌握仓库当前的状态,
上面的命令输出告诉我们,textfile.txt被修改过了,但还没有准备提交的修改。
git diff [文件名]
查看文件发生的变化
git log
查看在Gitfile这个版本库中,你的修改日志,进而把文本内容退回上一次编辑的位置【防盗标记–盒子君hzj】
git reset
你需要知道你的版本号(commit id),进而把文本内容退回上一次编辑的位置
git tag -a -m <描述>
创建带说明的标签
git tag -d
删除标签
git show
看详细信息
参考资料

https://blog.csdn.net/qq_36243942/article/details/81169913?utm_source=app&app_version=4.18.0&code=app_1562916241&ulinkId=usr1mkqgl919blen

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/511840.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号