git常规操作流程(纯命令行操作)和一些注意事项

当你在单位拿到了git仓库,并利用公司给你的OA账号和邮箱完成了你的git基础配置,下面就是使用命令行的无错固定操作流程

如果你很着急,你可以直接跳到最后的总结部分

具体步骤

1.从仓库克隆代码到本地

这里的[codeUrl]就是你仓库的地址,当你在仓库点击图中绿色位置时,剪贴板复制的就是仓库的地址

git clone [codeUrl]

2.切换到开发分支(当下仓库内已存在的远程分支)

这里说一下,正常来说,生产和主体代码都是在master分支上,克隆代码的时候没有特殊配置,也会是master分支。

任何人都不可能在master上开发和提交自己的代码!!!,master一般是负责人用来合并代码的,然后推送上生产的。

不过,也有很多项目是同时建立几个分支,dev(开发),test(测试),release(预发或生产)等等,这个时候你就需要去向别人核对你以哪个分支为主拉取代码。

比如公司有dev分支,每次开发都是以dev分支为主,那你就需要先去跳转到dev分支上。

当然了,你使用下面这个命令必须是你本地或者远程仓库本来就已经有这个分支了

git checkout dev

3.根据功能或者需求创建新分支

以master为主,我们需要创建自己的开发分支,我们可以根据功能的名字去给分支命名。

比如我们这次开发的功能,叫做图表功能开发,我们创建的名字应该叫做charts_mode或者chartsMode等,总之命名的语义化要强,千万不要命名什么aaa,bbb之类的

如果这次是修复图标数据的问题,可以这样命名,bug_charts_dataError

依据源分支创建并跳转分支

git checkout -b charts_mode

4.查看当前所在分支

怎么确定你当前在哪个分支

git branch

绿色的星标在哪里,你就在哪个分支

5.暂存代码,查看缓冲区和工作区的对比

将代码提交到暂存区,是本地提交前的一步,你需要将你的代码先推送到暂存区,这一步就好比火箭发射前让火箭去发射台,预备发射

当你改了一些东西,还没有保存到暂存区

你可以使用下面这个命令

git diff

 

当出现这种情况的时候,那就说明你的工作区还有没有推到暂存区的代码。

你就需要使用下面的命令,将工作区的代码推送到缓存区

git add -A

 执行完毕后,再去执行diff命令对比

当什么都没有的时候,就说明提到暂存区了

6.本地提交代码

当你改了一部分代码之后,比如你要休息,或者你感觉这里需要阶段性的保存一下,可以暂时提交到本地

暂时提交到本地的重要性有两个:

1.复盘和查找问题,回退时会比较方便,可以快速定位

2.如果你的代码因为特殊原因丢失了,只要你在本地提交过,都是可以找回的

提交本地之前需要先将代码推送到暂存区,add命令

并且提交到本地的时候,需要把你所提交的功能描述清楚

比如你开发完毕一个饼状图,你就可以这样描述:   new:饼图开发完成

执行命令

git commit -m "饼图开发完毕"

当出现如下情况,就说明你提交成功了。

7.推送到远程分支

当你本地代码都commit之后,你就需要把你的代码推送到远程分支了 

git push

 如果你之前的这个分支,在远程仓库压根并没有,会出现如下的提示

 这段话是告诉你,你要推送的这个分支对于远程仓库来说是个新分支,你确定要推送?

所以你需要执行下面的命令

git push --set-upstream origin test

 出现如下情况,就说明推送上去了

8.拉取源分支最新代码

当你将你的分支推送完毕之后,你需要和源分支去对比和修改冲突

首先你需要拉取仓库当前最新的代码

git pull

 

 如果出现上面这种情况,就说明目前没有新代码,你就可以不用对比了。

9.进行对比和修改冲突

如果有冲突,你需要认真的去看冲突是什么,并找有关同事,切记,不要把别人代码给弄没了,虽然也能找回来,但是这事办的就很恶心。

切记,切记!!!

10.与源分支合并

冲突解决完之后,你就需要将源分支的代码合并到你的分支上

执行合并命令:这里的[branchName]就是你的远程分支名

git merge [branchName]

 例如远程分支叫test

git merge test

当你合并完之后,你本地的charts_mode分支就已经兼并了你开发的功能和远程test分支更新的功能,这个时候,你就需要再次推送到你的分支,执行git push

现在你就完成了你个人分支的全部操作

11.提交给审核人去合并代码

当你所有的分支都操作完毕之后,这个时候你就需要去找负责人,将你的代码合并到源分支上,这里每个单位肯定都有一定的流程或者代码审查之类的,就需要看你个人了。

如果你是独立负责这个项目,分支由你自己来定,那你只需要切到源分支,去合并你刚才推送的个人分支,然后再推到远程。

12.拉取新分支开始新功能

当你完成一个功能,开始第二个功能开发的时候,最保险的方法就是从最新的源分支上重新构建新分支,这样可以使代码的管理更加方便。

总结:

固定步骤:

1.克隆仓库

git clone  [codeUrl]           

2.创建并跳至新分支

git checkout -b [newbranch]

3.提交到暂存区

git add -A   

4.提交到本地分支

git commit -m "完成某某功能" 

5.推送到远程仓库

git push

6.拉取远程仓库最新代码

git pull

7.合并冲突(如果有的话)
8.与源分支合并

git merge [branchName] 

9.再次推送到自己的远程分支

git push

10.向负责人提交合并与源分支的工单

注意:

1.保持定期commit的习惯,防止白干

2.合并冲突要谨慎,别坑队友

3.提交文本说明清楚,不要写天书

4.各分支的用途搞明白,选对源分支

5.开发新功能和修改问题最好拉新分支,方便管理和回退(个人建议)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/217205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud+Consul快速开发示例

简介 本章通过最新的springcloud版本与官方最新consul开源版服务,进行演示,如何快速搭建开发环境和注册与发现服务中心; 本文假设已知具备SpringCloud的基础开发能力,以及提前了解consul服务的使用,因此本文不会详细…

孩子还是有一颗网安梦——Bandit通关教程:Level 9 → Level 10

🕵️‍♂️ 专栏《解密游戏-Bandit》 🌐 游戏官网: Bandit游戏 🎮 游戏简介: Bandit游戏专为网络安全初学者设计,通过一系列级别挑战玩家,从Level0开始,逐步学习基础命令行和安全概念…

网络基础(八):路由器的基本原理及配置

目录 1、路由概述 2、路由器 2.1路由器的工作原理 2.2路由器的转发原理 3、路由表 3.1路由表的概述 3.2路由表的形成 4、静态路由配置过程(使用eNSP软件配置) 4.1两个静态路由器配置过程 4.2三个静态路由器配置过程 5、默认路由配置过程 5.…

Qt 容器QGroupBox带有标题的组框框架

控件简介 QGroupBox 小部件提供一个带有标题的组框框架。一般与一组或者是同类型的部件一起使用。教你会用,怎么用的强大就靠你了靓仔、靓妹。 用法示例 例 qgroupbox,组框示例(难度:简单),使用 3 个 QRadioButton 单选框按钮,与QVBoxLayout(垂直布局)来展示组框的…

若依框架启动过程中遇到的控制台使用npm i下载相关依赖报错的问题以及前端启动遇到的问题

目录 报错截图问题解决其他问题 npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。问题解决更改环境变量新建系统变量 其他问题 错误解决Error: error:0…

美食大赛的题解

目录 原题描述: 题目描述: 输入格式: 输出格式: 样例输入: 样例输出: 数据规模: 题目大意: 主要思路: 注: 代码: 原题描述&#xff1a…

Uniapp软件库全新带勋章功能(包含前后端源码)

源码介绍: Uniapp开发的软件库全新带勋章功能,搭建好后台 在前端找到 util 这个文件 把两个js文件上面的填上自己的域名,电脑需要下载:HBuilderX 登录账号 没有账号就注册账号, 然后上传文件,打包选择 “…

js 有关递归简单介绍

递归:指调用自身的函数 重点:递归函数必须有可以终止递归调用的语句,否则会导致内存溢出 递归的性能不好,因为在递归终止前,JavaScript引擎会为每一次递归分配一块内存以存储栈帧,随着递归的深入&#xff…

基于双树复小波变换和稀疏表示的多光谱和彩色图像融合算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 双树复小波变换原理 4.2 稀疏表示原理 4.3 基于双树复小波变换和稀疏表示的图像融合算法 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序…

补充回答一些关于枚举类型的问题

补充回答一些关于枚举类型的问题 1.枚举类型在什么时候使用 枚举类型在以下情况下特别有用: 有限的离散值集合: 当变量的取值只有有限且离散的几个选项时,使用枚举类型能够提高代码的可读性。例如,星期几、月份、颜色等。 enum W…

讲解一手CSRF,如何防御CSRF

简介: CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种网络安全漏洞,它允许攻击者通过欺骗用户在当前已登录的Web应用程序上执行未经用户授权的操作。 攻击者利用用户在目标网站上已经建立的身份认证&#xff…

Vue 双向绑定:让数据与视图互动的魔法!(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

【python笔记】requests模块基础总结

前言 菜某笔记总结,如有错误请指正。 requests用途 主要是用于发送网络请求 Requests库的主要方法和属性 rrequests.get() Response Request 对象 对象 r.cookies #打印cookie r.content #常用于图像视频等 以上内容来自2_哔哩哔哩_bilibili 发…

【Netty的线程模型】

Netty的线程模型 Netty的线程模型知识拓展单Reactor单线程模型单Reactor多线程模型主从Reactor模型 Netty的线程模型 Netty通过Reactor模型基于多路复用器接收并处理用户请求的,多路复用IO模型参考: 多路复用IO模型: 操作系统的IO模型有哪些&#xff1f…

短剧规模达到了百亿元,短剧分销成为短剧新模式

我国短剧市场规模直接突破了三百多亿元,目前已经是互联网的一大创业风口! 一、短剧特点 在当下快节奏的生活中,短剧具有的快节奏、剧情紧凑的特点,符合大众对影视的需求。目前我国的短剧题材主要是言情、总裁、赘婿等&#xff0…

Jmeter 测试 MQ 接口怎么做?跟我学秒变大神!

MQ(message queue)消息队列,是基础数据结构 先进先出 的一种典型数据结构。一般用来解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。 MQ 主要产品包括:Rabb…

基于ssm汽车养护管理系统论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本汽车养护管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息…

WEB渗透—PHP反序列化(一)

Web渗透—PHP反序列化 课程学习分享(课程非本人制作,仅提供学习分享) 靶场下载地址:GitHub - mcc0624/php_ser_Class: php反序列化靶场课程,基于课程制作的靶场 课程地址:PHP反序列化漏洞学习_哔哩…

vue3 + ts 防抖指令,节流指令,复制指令

vue3 ts 自定义指令 防抖指令,节流指令,复制指令 本文使用了 element-ui , element-plus 官网 源文件 https://admin.spicyboy.cn/#/directives/debounceDirect 新建 copy.ts 文件 (复制指令) import type { Directive, Di…

12.6每日一题(备战蓝桥杯程序的控制结构)

12.6每日一题(备战蓝桥杯程序的控制结构) 题目 1638: 【入门】判断正负数或零题目描述输入输出样例输入样例输出来源/分类 题解 1638: 【入门】判断正负数或零题目 1348: 【入门】求绝对值题目描述输入输出样例输入样例输出来源/分类 题解 1348: 【入门】…