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,一经查实,立即删除!

相关文章

Linux(debian)常用经典运维命令和 Linux Ubuntu运维常用命令

一 、Debian 运维方法 Linux debian系统的运维涉及各种任务,包括系统安装、配置、更新和维护,以及故障的排查和性能优化。下面是一些常用的运维命令: 1:apt-get update #更新软件包列表,这是在安装新软件…

在ros中进行多传感器融合定位

文章目录 1. 简介2. 概念2.1 ROS Nav 堆栈复习2.2 map、odom和base_link2.3 卡尔曼滤波器和传感器融合的动机2.4 协方差3. 实用的传感器融合与robot_localization1. 简介 ROS 中的 robots_localization 包是一个非常有用的包,可以使用各种卡尔曼滤波器融合任意数量的传感器!…

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.…

python新式类变化统一类和类型

1 python新式类变化统一类和类型 python新式类从2.2版本引入。 (1)新式类继承内置类型 (比如object,list,dict等),经典类不继承任何类。 (2)python2,定义类时,显式继承…

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

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

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

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

什么是Proxy?

在JavaScript中,Proxy是一种对象,它允许你创建一个代理对象来拦截并改变底层对象的基本操作。使用Proxy,你可以在对象上定义自定义行为,例如: 拦截对对象属性的读取和写入操作拦截函数调用拦截in操作符拦截delete操作符…

Ansible适合的场景是什么?

Ansible将编排与配置管理、供应和应用程序部署结合并统一在一个易于使用的平台上。Ansible的一些主要场景包括: 配置管理:集中配置文件管理和部署是Ansible的一个常见场景。 应用程序部署:当使用Ansible定义应用程序,并使用Ansible Tower管…

美食大赛的题解

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

合并表记录

描述 数据表记录包含表索引index和数值value&#xff08;int范围的正整数&#xff09;&#xff0c;请对表索引相同的记录进行合并&#xff0c;即将相同索引的数值进行求和运算&#xff0c;输出按照index值升序进行输出。 提示: 0 < index < 11111111 1 < value < …

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

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

Java Jar包指令以及运行Jar包

1.打包指令 要打包 JAR 文件&#xff0c;可以使用 Java 开发工具包&#xff08;JDK&#xff09;提供的 jar 命令。以下是使用 jar 命令打包 JAR 文件的基本语法&#xff1a; jar cf <jar文件名>.jar <文件或目录>其中&#xff0c;<jar文件名>是你要创建的 …

PrestoSQL语法及优化

PrestoSQL语法及优化 1、PrestoSQL概述2、PrestoSQL语法2.1、PrestoSQL数据类型2.2、关键字和标识符2.3、PrestoSQL注释2.4、PrestoSQL语法2.5、PrestoSQL例程2.6、PrestoSQL使用常见问题3、PrestoSQL优化3.1、存储优化3.2、查询优化3.3、多数据源联合查询1、PrestoSQL概述 202…

无线充电Qi通信协议分析

1 工作原理 无线充电通信采用的是backscatter调制方式&#xff0c;简单来说就是一种负载调制方式&#xff0c;类似于RFID的原理。并且无线充电过程主要是有Power Receiver&#xff08;一般指手机&#xff09;控制&#xff0c;而Power Transmitter&#xff08;充电板&#xff09…

力扣139. 单词拆分

动态规划 思路&#xff1a; 假设 dp[i] 为单词前 i 个字符能否被拆分的结果&#xff1b;假设最近的一个单词分割点 j&#xff0c;如果 dp[i] 能够被拆分&#xff0c;则 dp[j] 能被拆分&#xff0c;并且 s[j, i - 1] 在字典中&#xff1b;即状态转移方程&#xff1a; dp[i] dp…

js 有关递归简单介绍

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

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

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

Redis 主从复制源码分析

前置学习&#xff1a;Redis server启动源码-CSDN博客