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.开发新功能和修改问题最好拉新分支,方便管理和回退(个人建议)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1841_在Windows上安装emacs irony server

Grey 全部学习内容汇总:GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used. 1841_在Windows上安装emacs irony server emacs有很多优点,配置出来不仅用着顺手而且有一定的成就感。但是,对于大多数人来说或…

001两数之和

题意 给出一个数组和一个目标值,让你在数组中找出和为目标值的两个数,并且这两个数在数组中的下标(索引)不同。 示例 输入:nums[2,7,11,15],target9 输出:[0,1] 解释:因为nums[0]nums[1]9&#…

苹果app应用ipa文件程序开发后如何运行到苹果iOS真机上测试?

在苹果应用程序开发过程中,将app安装于真机进行测试是一个不可或缺的步骤,它可以帮助你检测app在实际设备上的性能表现及存在的潜在问题。这篇文章将详细阐述如何将开发好的苹果app(.ipa文件)安装到真机上进行测试。 图片来源&…

DataFunSummit:2023年数据治理在线峰会-核心PPT资料下载

一、峰会简介 数据治理(Data Governance)是组织中涉及数据使用的一整套管理行为。由企业数据治理部门发起并推行,关于如何制定和实施针对整个企业内部数据的商业应用和技术管理的一系列政策和流程。 数据治理是一个通过一系列信息相关的过程…

【数据结构】堆的模拟实现

前言:前面我们学习了顺序表、单链表、栈、队列,今天我们就开始新的学习吧,今天我们将进入堆的学习!(最近博主处于低谷期)一起加油吧各位。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:数据结构 &…

idea__SpringBoot微服务10——整合JDBC(新依赖)

整合JDBC 完整项目地址:一、创建一个项目二、idea配置连接mysql三、创建yaml数据库连接配置文件四、测试一下,没有问题五、增删改查————————创作不易,如觉不错,随手点赞,关注,收藏(* ̄︶…

P4 Qt基础控件——工具按钮toolButton(上)

前言 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ 🔥 推荐专栏2: 《Linux C应用编程(概念类)_ChenPi的博客-CSDN博客》✨✨✨ 🌺本篇简介 :这一章我们学一…

[湖湘杯 2021 final]MultistaeAgency

文章目录 题目是给了源码,我们先来看web的main.go package mainimport ("bytes""crypto/md5""encoding/json""fmt""io""io/ioutil""log""math/rand""net/http""o…

数据库系统相关概念

数据:描述事务的符号记录。 数据库(DB):按一定的数据模型组织,描述和存储在计算机内的,有组织的,可共享的数据集合。 数据库管理系统(DBMS):位于用户和操作系统之间的一层数据管理软件。主要功能包括&#…

iframe 与主应用页面之间如何互相通信传递数据

背景 当我们的Web页面需要复用现有网站的页面时,我们通常会考虑代码层面的抽离引用,但是对于一些过于复杂的页面,通过 iframe 嵌套现有的网站页面也是一种不错的方式,。目前我就职的项目组就有多个业务利用 iframe 完成业务的复用…

【实用】sklearn决策树怎么导出规则

目录 一、什么是决策树模型 0.1 什么是决策树 02.决策树模型有哪些 二、在sklearn中怎么训练一棵决策树 三、什么是决策树的规则 0.1决策树的决策规则 02. 决策树的决策规则是怎么存储的 四、怎么导出决策树的规则 4.1 导出决策树文本规则 4.2 导出可视化决策树 4.3…

C++入门【3-C++ 变量类型】

C 变量类型 变量其实只不过是程序可操作的存储区的名称。 在 C 中,有多种变量类型可用于存储不同种类的数据。 C 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量…

初学python的体会心得20字,初学python的体会心得2000

大家好,小编来为大家解答以下问题,学了python的心得体会200字,初学python的体会心得20字,现在让我们一起来看看吧! 本学期,我们学习了杨老师的《python语言程序设计》这门课程,其实早在大一期间…

【RTOS学习】模拟实现任务切换 | 寄存器和栈的变化

🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 目录 🏀认识任务切换🏐切换的实质🏐栈中的内容🏐切…

数据可视化:解析跨行业普及之道

数据可视化作为一种强大的工具,在众多行业中得到了广泛的应用,其价值和优势不断被发掘和利用。今天就让我以这些年来可视化设计的经验,讨论一下数据可视化在各个行业中备受青睐的原因吧。 无论是商业、科学、医疗保健、金融还是教育领域&…

Vue2笔记

笔记 脚手架文件结构 ├── node_modules ├── public │ ├── favicon.ico: 页签图标 │ └── index.html: 主页面 ├── src │ ├── assets: 存放静态资源 │ │ └── logo.png │ │── component: 存放组件 │ │ └── HelloWorld.vue …

三天精通Selenium Web 自动化 - 如何找到元素

1. 什么是元素? 元素:HTML 元素 2. 定位方式解析 Selenium WebDriver 提供一个先进的技术来定位 web 页面元素。Selenium 功能丰富的API 提供了多个定位策略如:Name、ID、CSS 选择器、XPath 等等,如下图所示: 一般会用ID来定位…

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

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

华清作业day45

头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime> #include <QTimer> #include <QTimerEvent> #include <QTextToSpeech> QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass…

Unity_ET框架项目-斗地主_启动运行流程

unity_ET框架项目-斗地主_启动运行流程 项目源码地址&#xff1a; Viagi/LandlordsCore: ET斗地主Demohttps://github.com/Viagi/LandlordsCore下载项目到本地。 启动运行步骤&#xff1a; 下载目录如下&#xff1a; 1. VS&#xff08;我用是2022版VisualStudio&#xff09…