当前位置: 首页 > news >正文

【Git企业实战开发】Git常用开发流操作总结

【Git企业实战开发】Git常用开发流操作总结

大家好 我是寸铁👊
总结了一篇Git常用开发流操作总结的文章✨
喜欢的小伙伴可以点点关注 💝

现在刚做项目的伙伴,可能你之前学过git,但是一实战发现不熟悉
没关系,看寸铁这篇博客,帮助你少走弯路!

前言

Git作为开发的代码版本和团队多人协作分支管理的强大工具,在企业和公司中运用的十分广泛,作为程序员,熟悉常用的开发流操作就显得非常必要了!
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必对服务器端软件支持。

笔者最近在开发过程中,经常对Git的企业开发流运用的不够熟练,所以整理了一下最近开发过程中的常用开发流,随着项目的深入,后面会不断在这篇文章中持续更新添加其他实战操作,欢迎朋友们的关注与点赞!

谨此感谢帮助笔者一路成长的伙伴们!


Git工作流程

在这里插入图片描述


Git基础操作

在这里插入图片描述
说明:

workspace:工作区(你当前所操作的区域)
staging area:暂存区/缓存区
local repository:版本库或本地仓库
remote repository:远程仓库

Git命令说明

命令说明
git initgit init命令创建一个空的Git仓库或重新初始化一个现有仓库。
git clonegit clone命令将远程存储库克隆到新目录中。
git addgit add命令将文件内容添加到索引(将修改添加到暂存区)。
git commit该命令用于将更改记录(提交)到存储库。将暂存区的当前内容与描述更改的用户和日志消息一起存储在新的提交中。
git pull该命令用于从另一个存储库或本地分支获取并集成(整合)。
git push该命令用于将本地分支的更新,推送到远程仓库。
git status该命令用于显示工作目录和暂存区的状态。
git log该命令用于显示提交日志信息。
git branch该命令列出当前存储库中的所有本地分支。
git checkout该命令命令用于从一个分支切换到另一个分支。
git fetch该命令用于从远程获取代码库。
git merge该命令用于将两个或两个以上的开发历史加入(合并)一起。
git stash该命令临时存储所有已修改的跟踪文件。

Git企业实战

添加本地的文件到远程分支

默认你已经切换到本地分支了

  1. 先添加文件到暂存区
git add .
  1. 再提交到本地仓库上
git commit -m '备注'
  1. 最后推到远程分支即可
git push (xx分支)

注意:如果说你所在的分支就是你要push的远程分支,请直接使用git push

比如:你所在的分支是origin/oop

然后想要push到远程仓库的oop分支
即执行: git push origin/oop

结果报错显示如下, 尝试直接使用如下命令:

git push

在这里插入图片描述


运行结果如下:

在这里插入图片描述

这是因为你所在的分支就是你要push的远程分支,所以会报仓库不存在的错误。


合并远程分支代码

  1. 先拉取远程仓库代码到本地仓库中
git fetch 

注意:此时还未merge合并

在这里插入图片描述

  1. 再合并需要的分支代码
git merge origin/xx分支

在这里插入图片描述

  1. 合并时,遇到冲突时怎么解决?
    2024/2/26更新

今天在合并代码时报错如下:

在这里插入图片描述

具体报错如下:

warning: in the working copy of 'xx.go', LF will be replaced by CRLF the next time Git touches it
Auto-merging xx.go
CONFLICT (content): Merge conflict in xx.go
Auto-merging xx.go
CONFLICT (content): Merge conflict in xx.go
Automatic merge failed; fix conflicts and then commit the result.

这时需要我们先手动合并,再addcommit即可。


  • 先找到冲突的文件,冲突标记如下:
<<<<<<<<你当前的分支========>>>>>>>>合并的分支

在这里插入图片描述

  • 进行手动合并操作

我们把<<<<<<<<========>>>>>>>>给删掉,再合并保留我们需要的内容。

比如,我这里需要保留一下resp

删除符号,保留自己需要的内容后,文件就不报红啦

在这里插入图片描述

实际合并中,可能会有其他的也是需要合并的,比如导入的包之类的,这里只演示示例,其他的同上操作手动合并即可。

  • 保存提交到本地仓库
    最后,待冲突解决完后,我们还要提交到本地仓库中,相当于保存操作。如下两步走:
    • git add .
      作用: 执行 git add 命令将解决冲突后的文件标记为已解决
      在这里插入图片描述
    • git commit -m '你备注'
      作用:执行git commit提交合并后的结果。 在这里插入图片描述

    至此,合并冲突就解决啦,又可以继续愉快地开发啦!


合并冲突总结

我们再来回顾一下刚才的合并操作步骤:

  1. 先打开包含冲突的文件

  2. 在文件中搜索包含冲突的部分,通常会看到类似以下的标记:

    <<<<<<<<你当前的分支========>>>>>>>>合并的分支
    
  3. 根据你的需求选择要保留的更改或者进行合并删除冲突标记 (<<<<<<<, =======, >>>>>>>),并保留你需要的代码。你可以选择保留某个分支的更改,也可以将两个分支的更改合并在一起。

  4. 解决完所有冲突后,保存文件。

  5. 执行 git add 命令将解决冲突后的文件标记为已解决

  6. 最后,执行git commit提交合并后的结果。


切换到远程仓库的其他分支

  1. 切换其他分支
git checkout -b origin/xx分支

在这里插入图片描述

如果提示已有这个分支则进行直接切换即可,如下命令:

git checkout origin/xx分支

在这里插入图片描述

  1. 再检查一下是否在你想要的分支
    -a列举出所有的分支,带*报绿的则为当前分支
git branch -a

在这里插入图片描述

备注:q退出当前命令行


删除本地分支并拉取其他远程分支代码

  1. 先切换到主分支
 git checkout master

在这里插入图片描述

  1. 再执行删除本地分支
git branch -D 你的本地分支名字

在这里插入图片描述

  1. 最后再拉取远程分支的代码
git pull origin xx分支

在这里插入图片描述


其他常用命令用法

  1. git stash
git stash

用于暂存当前工作目录的修改,以便于你在切换分支或者执行其他操作之前保存这些修改,而不必提交它们。


git stash pop

从存储的工作记录(stash)中应用(恢复)最近的一次存储的修改,并且从存储区中删除这次存储,类似栈的pop弹出操作。


  1. git status
git status

状态命令可以用来查看当前项目的状态,包括修改过但未提交的文件、未跟踪的文件、分支信息等。状态命令的格式如下:

结语

Git的命令很多,最常用的企业开发流基本都在这了,不熟悉的小伙伴赶紧学起来,快速上手项目的开发。后面会持续更新实战命令,大家可以关注留意一下,感谢您的支持!


看到这里的小伙伴,恭喜你又掌握了一个技能👊
希望大家能取得胜利,坚持就是胜利💪
我是寸铁!我们下期再见💕

往期好文💕

保姆级教程

【保姆级教程】Windows11下go-zero的etcd安装与初步使用

【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero

【Go-Zero】手把手带你在goland中创建api文件并设置高亮


报错解决

【Go-Zero】Error: user.api 27:9 syntax error: expected ‘:‘ | ‘IDENT‘ | ‘INT‘, got ‘(‘ 报错解决方案及api路由注意事项

【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案

【Go-Zero】【error】 failed to initialize database, got error Error 1045 (28000):报错解决方案

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案

【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“报错解决方案

【Go-Zero】Error: user.api 30:2 syntax error: expected ‘)‘ | ‘KEY‘, got ‘IDENT‘报错解决方案

【Go-Zero】Windows启动rpc服务报错panic:context deadline exceeded解决方案


Go面试向

【Go面试向】defer与time.sleep初探

【Go面试向】defer与return的执行顺序初探

【Go面试向】Go程序的执行顺序

【Go面试向】rune和byte类型的认识与使用

【Go面试向】实现map稳定的有序遍历的方式

相关文章:

【Git企业实战开发】Git常用开发流操作总结

【Git企业实战开发】Git常用开发流操作总结 大家好 我是寸铁&#x1f44a; 总结了一篇Git常用开发流操作总结的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 现在刚做项目的伙伴&#xff0c;可能你之前学过git&#xff0c;但是一实战发现不熟悉 没关系&#xff0c;看寸铁这篇…...

vue2+element医院安全(不良)事件报告管理系统源代码

目录 安全不良事件类型 源码技术栈 医院安全&#xff08;不良&#xff09;事件报告管理系统采用无责的、自愿的填报不良事件方式&#xff0c;有效地减轻医护人员的思想压力&#xff0c;实现以事件为主要对象&#xff0c;可以自动、及时、实际地反应医院的安全、不良、近失事件…...

leetcode初级算法(python)- 字符串

文章目录 1.反转字符串常规算法pythonic 算法2.整数反转数学法字符串法3.字符串中的第一个唯一字符pythonic算法哈希算法4.有效的字母异位词常规算法进阶算法5.最长公共前缀1.反转字符串 输入:[‘h’,‘e’,‘l’,‘l’,‘o’] 输出:[‘o’,‘l’,‘l’,‘e’,‘h’]...

Python 鼠标模拟

鼠标模拟即&#xff1a;通过python 进行模拟鼠标操作 引入类库 示例如下&#xff1a; import win32api import win32con import time 设置鼠标位置 设置鼠标位置为窗口中的回收站。 示例如下&#xff1a; # 设置鼠标的位置 win32api.SetCursorPos([30, 40]) 双击图标 设置…...

Linux进程 ----- 信号处理

前言 从信号产生到信号保存&#xff0c;中间经历了很多&#xff0c;当操作系统准备对信号进行处理时&#xff0c;还需要判断时机是否 “合适”&#xff0c;在绝大多数情况下&#xff0c;只有在 “合适” 的时机才能处理信号&#xff0c;即调用信号的执行动作。 一、信号的处理…...

【数位】【数论】【分类讨论】2999. 统计强大整数的数目

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 数位 数论 LeetCode2999. 统计强大整数的数目 给你三个整数 start &#xff0c;finish 和 limit 。同时给你一个下标从 0 开始的字符串 s &#xff0c;表示一个 正 整数。 如果一个 正 整数 x 末尾部分是 s &#xff08…...

MongoDB聚合运算符:$atan2

$atan2用来计算反正切&#xff0c;返回指定表达式的反正切值&#xff0c;与$antan的区别主要是参数不同。 语法 { $atan2: [<expression1>, <expression1>] }<expression>为可被解析为数值的表达式$atan2返回弧度&#xff0c;使用$radiansToDegrees运算符可…...

敏捷开发最佳实践:价值维度实践案例之ABTest中台化

22年敏捷白皮书调研发现&#xff0c;仅有14%的企业部分实现价值管理闭环&#xff0c;8%的企业能够做到企业战略和业务目标与价值管理紧密结合。这一现象说明了大部分中国企业还不能在敏捷实践中实现需求价值的体系化及多维度价值度量&#xff0c;因此推广优秀的敏捷实践至关重要…...

爬虫基本库的使用(requests库的详细解析)

注&#xff1a;本文一共4万多字&#xff0c;希望读者能耐心读完&#xff01;&#xff01;&#xff01; 前面,我们了解了urllib库的基本用法&#xff08;爬虫基本库的使用(urllib库的详细解析)-CSDN博客&#xff09;。其中&#xff0c;确实又不方便的地方。例如处理网页验证…...

QT实现串口通信

一.Qt串口通信 Qt提供了两个关于串口通信的C类&#xff0c;分别是QSerialPort和QSerialPortInfo。 QSerialPort类提供了操作串口的各种接口。 QSerialPortInfo是一个辅助类&#xff0c;可以提供计算机中可用的串口的各种信息。 QSerialPortInfo Class用于提供外部串行端口的…...

微信小程序 --- 通用模块封装(showToast,showModal ,本地存储)

目录 01. 为什么进行模块封装 02. 消息提示模块封装 03. 模态对话框封装 04. 封装本地存储 API 05. 拓展:封装异步存储API优化代码 01. 为什么进行模块封装 在进行项目开发的时候&#xff0c;我们经常的会频繁的使用到一些 API&#xff0c; 例如&#xff1a;wx.showToast…...

基于springboot+vue的音乐网站(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…...

pclpy 最小二乘法拟合平面

pclpy 最小二乘法拟合平面 一、算法原理二、代码三、结果1.左边原点云、右边最小二乘法拟合平面后点云投影 四、相关数据 一、算法原理 平面方程的一般表达式为&#xff1a; A x B y C z D 0 ( C ≠ 0 ) Ax By Cz D 0 \quad (C\neq0) AxByCzD0(C0) 即&#xff1a; …...

蓝桥杯备战刷题(自用)

1.被污染的支票 #include <iostream> #include <vector> #include <map> #include <algorithm> using namespace std; int main() {int n;cin>>n;vector<int>L;map<int,int>mp;bool ok0;int num;for(int i1;i<n;i){cin>>nu…...

Python习题详解

练习&#xff1a; 1&#xff0c;计算100以内奇数的和 #计算100以内所有奇数的和 sum 0 # n 1 # while n < 100: # # sum sum n # sum n # # n n 2 # n 2 # print(sum) n 99 #求偶数时n 100 while n > 0:sum n# n n - 2n - 2 print(sum)2&#xff0c;打印直…...

绩效考核利器:Excel报表模板,解锁企业高效员工评价新境界

一、背景与目标 在现今的企业管理中&#xff0c;绩效考核是一项至关重要的任务。它旨在评估员工的工作表现&#xff0c;激励员工积极进取&#xff0c;同时也是制定薪酬、晋升、培训等决策的重要依据。为了满足这一需求&#xff0c;我们设计了一款绩效考核Excel报表模板&#x…...

如何使用Lychee+cpolar搭建本地私人图床并实现远程访问存储图片

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站&#xff0c;可以看做是云存储的一部分&#xff0c;既可…...

跨境支付介绍

1、跨境电商定义和分类&#xff1b; 2、国际贸易清结算&#xff1b; 3、跨境支付&#xff1b; 1、跨境电商定义和分类 跨境电商业务简单说就是指不同国家地域的主体通过电子商务进行交易的一种业务模式。同传统的电商不同&#xff0c;交易双方属于不同的国家。因此&#xff0…...

如何在Linux搭建MinIO服务并实现无公网ip远程访问内网管理界面

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器&#xff0c;可以在各种环境中运行&#xff0c;例如本地、Docker容器、Kubernetes集群等。它兼…...

Cortex-M可以跑Linux操作系统吗?

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; Cortex-M系列微控制器主要设计…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...