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

git远端协同开发、解决冲突、分支合并、gitlab使用、远程仓库回滚、为开源项目贡献代码、git工作流,git pull和git fetch,变基

协同开发

避免冲突

张三:改了 settings.py 第一行,提交了

李四:改了 settings.py 第二行,提交了

你也在改setting.py ,没有拉取代码,不知道他们提交了,动了第二行,但是跟李四代码不一样
你要提交,必须先拉取,一拉,把张三的,李四的都会加到你代码中,就会出冲突

如果你想避免冲突,勤拉取代码

协同开发

同学一:
  1. git clone 项目
  2. pycharm打开
  3. git add .当前目录下有个venv文件夹 ⇢ \dashrightarrow 删除这个文件夹
  4. git commit -m 'ss'设置用户名和邮箱
  5. git push origin master推不上去
  6. git pull origin master需要先拉下来
同学二:
  1. 在pycharm中改代码
  2. 改的不是同一个文件
  3. git add .
  4. git commit -m 'ss'
  5. git push origin master 由于我们改了不是同一个文件,不会冲突
  6. git pull origin master

冲突解决

多人在同一分支开发

当推到远端发生冲突时,git pull origin master先将远端拉下来,删除报错,看代码,如果改的一样,就留别人的,把自己的代码删除

分支合并

操作步骤

  1. git branch dev创建分支
  2. git checkout dev切换到分支
  3. 修改代码
  4. git add.
  5. git commit -m '修改'
  6. git checkout master切换到主分支,分支合并只能在主分支
  7. git merge dev合并分支,出冲突了,解决冲突,再提交
  8. git add .
  9. git commit -m
    <>

gitlab使用

  1. 创建账号 ⇢ \dashrightarrow 管理员审核
  2. 登录进去 ⇢ \dashrightarrow 就能看到项目 ⇢ \dashrightarrow (项目管理员把你添加成开发者了)
  3. 把代码clone下来,使用pycharm打开
  4. 写代码,本地提交
  5. 推送到远端 ⇢ \dashrightarrow 先拉取代码

问题: 普通开发者,提交到master分支是不行的

  1. 创建一个dev分支 ⇢ \dashrightarrow 提交到dev分支
  2. 后期由管理员做分支合并 ⇢ \dashrightarrow 把dev合并到master中

线上分支合并

线下分支合并:git merge dev

线上分支合并

公司有个主分支 ⇢ \dashrightarrow 只保留大版本信息,真正的开发在dev分支开发

你开发的代码,提交到dev分支了,功能写完了,要给用户看了,把dev分支合并到主分支

  • 可以线下分支合并,合并完,推送上去 ⇢ \dashrightarrow 没有权限,只能仓库管理员来做
  • 线上分支合并:
    • 提交:pr:pull request mr:merge request

远端有分支,本地也有分支
  1. 远程创建,本地拉取
    • 本地执行:git pull origin devgit checkout dev
  2. 本地创建,提交到远端
    • 本地执行:git branch devgit checkout dev1git push origin dev1

操作步骤

  1. 远端创建dev分支
  2. 本地 git pull origin dev
  3. git branch 查看看不到,直接checkout 到dev分支就可以了
  4. dev分支写代码,本地提交,推送到远端dev
  5. 功能开发完了,普通开发者,提交pr
  6. 管理员点审查,测试通过 ⇢ \dashrightarrow 同意合并 ⇢ \dashrightarrow dev就合并到master
咱们分支结构

master dev bug

  1. 所有人在dev开发新功能,开发完,提交pr ⇢ \dashrightarrow 合并到master ⇢ \dashrightarrow 结束
  2. 每个人在自己分支开发,开发完,提交pr ⇢ \dashrightarrow 合并到dev ⇢ \dashrightarrow 你的功能开发完毕
  3. 管理员自己 提pr ⇢ \dashrightarrow dev和master

远程仓库回滚(你不要去做)

  1. 本地回到 初始化的状态(主分支)
    • git reset --hard 版本号
  2. 强制推送到远端
    • git push origin master
    • git push origin master -f 失败

为开源项目贡献代码

  1. fork 开源代码 ⇢ \dashrightarrow 你仓库就有这个代码
  2. clone你仓库的代码
  3. 写代码,提交到你仓库
  4. 你仓库,提交pr 你仓库的某个分支 合并到别人的某个分支
  5. 对方审核通过,同意,才ok

git工作流,git pull和git fetch,变基

  1. git 工作流:git flow ⇢ \dashrightarrow 分支方案
    • 我们没有采用
    • master dev bug
  2. git pull 和 git fetch
    • git pull 从远程仓库拉取代码:从远程获取最新版本并merge到本地
    • git fetch 从远程仓库拉取代码:会将数据拉取到本地仓库 - 它并不会自动合并或修改当前的工作
    • git pull =git fetch +merge

  3. 变基 rebase
    • 多个提交记录整合成一个
    • 解决多次合并分叉问题

相关文章:

git远端协同开发、解决冲突、分支合并、gitlab使用、远程仓库回滚、为开源项目贡献代码、git工作流,git pull和git fetch,变基

协同开发 避免冲突 张三&#xff1a;改了 settings.py 第一行&#xff0c;提交了 李四&#xff1a;改了 settings.py 第二行&#xff0c;提交了 你也在改setting.py ,没有拉取代码&#xff0c;不知道他们提交了&#xff0c;动了第二行&#xff0c;但是跟李四代码不一样 你要…...

ims-go项目搭建

通过集成开发工具Goland创建项目 整合Gin框架&#xff0c;在终端中输入如下命令&#xff1a; go get -u github.com/gin-gonic/gin 整合Gorm&#xff0c;安装命令如下&#xff1a; go get -u gorm.io/gorm 安装sqlserver驱动&#xff0c;安装命令如下&#xff1a; go get -u…...

2022最新版-李宏毅机器学习深度学习课程-P26 Recurrent Neural Network

RNN 应用场景&#xff1a;填满信息 把每个单词表示成一个向量的方法&#xff1a;独热向量 还有其他方法&#xff0c;比如&#xff1a;Word hashing 单词哈希 输入&#xff1a;单词输出&#xff1a;该单词属于哪一类的概率分布 由于输入是文字序列&#xff0c;这就产生了一个问…...

【Qt控件之QButtonGroup】概述及使用

概述 QButtonGroup 类提供了一个容器来组织一组按钮部件。 QButtonGroup 提供了一个抽象容器&#xff0c;可以将按钮部件放置其中。它不提供此容器的可视表示&#xff08;请参见 QGroupBox&#xff0c;用于容器部件&#xff09;&#xff0c;而是管理组中每个按钮的状态。 一个…...

【开源分享】基于Html开发的房贷计算器,模仿新浪财经

房贷计算器是一种房贷计算的在线计算Web应用&#xff0c;按用户选择的贷款类型、贷款金额、期限、利率可计算得出每月月供参考、支付利息、还款总额这些信息。本文模仿新浪财经开发的房贷计算器。 作品预览 https://fangdai.gitapp.cn 源码地址 https://github.com/geeeeeee…...

ftp文件上传缓慢问题

问题描述 某环境下&#xff0c;通过vsftp上传文件缓慢。 问题分析 这个问题是由于服务器DNS导致&#xff0c;如果在内网机器中&#xff0c;配置了公网的DNS或者其他不能链接的DNS&#xff0c;会导致上传缓慢。 解决方案 目前有两种解决方式&#xff0c;任选其一即可&#…...

【周末闲谈】VR新视界,“眼”见未来

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️周末闲谈】 系列目录 ✨第一周 二进制VS三进制 ✨第二周 文心一言&#xff0c;模仿还是超越&#xff1f; ✨第二周 畅想AR 文章目录 系列目录前言虚拟现实(VR)技术虚拟现实技术的原理虚拟现实技术发…...

CSRF和XSS是什么?

CSRF&#xff08;Cross-site request forgery&#xff09;&#xff1a;跨站请求伪造。 用户是网站A的注册用户&#xff0c;且登录进去&#xff0c;于是网站A就给用户下发cookie。 满足条件&#xff1a; &#xff08;1&#xff09;登录受信任网站A&#xff0c;并在本地生成Cook…...

【Machine Learning】01-Supervised learning

01-Supervised learning 1. 机器学习入门1.1 What is Machine Learning?1.2 Supervised learning1.3 Unsupervised learning 2. Supervised learning2.1 单元线性回归模型2.1.1 Linear Regression Model&#xff08;线性回归模型&#xff09;2.1.2 Cost Function&#xff08;代…...

《视觉 SLAM 十四讲》V2 第 8 讲 视觉里程计2 【如何根据图像 估计 相机运动】【光流 —> 直接法】

OpenCV关于 光流的教程 文章目录 第 8 讲 视觉里程计 28.2 光流8.3 实践&#xff1a; LK 光流 【Code】本讲 CMakeLists.txt 8.4 直接法8.5 实践&#xff1a; 双目的稀疏直接法 【Code】8.5.4 直接法的优缺点 习题 8√ 题1 光流方法题2题3题4题5 第 8 讲 视觉里程计 2 P205 …...

Unity DOTS System与SystemGroup概述

最近DOTS终于发布了正式的版本, 我们来分享以下DOTS里面System关键概念&#xff0c;方便大家上手学习掌握Unity DOTS开发。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以点击进来一起交流一下开发经验呀&#xff01; System是迭代计算与处理World中的…...

IDEA使用内置database数据库连接mysql报错:javax.net.ssl.SSLHandshakeException

参考一些博客的方式&#xff1a; 使用idea内置database连接数据库报错javax.net.ssl.SSLHandshakeException: No appropriate protocol_idea database ssl_你当像山的博客-CSDN博客 他们的方式是&#xff1a;在url后添加useSSLfalse 介绍另外一种方式&#xff1a; 点击datab…...

从Flink的Kafka消费者看算子联合列表状态的使用

背景 算子的联合列表状态是平时使用的比较少的一种状态&#xff0c;本文通过kafka的消费者实现来看一下怎么使用算子列表联合状态 算子联合列表状态 首先我们看一下算子联合列表状态的在进行故障恢复或者从某个保存点进行扩缩容启动应用时状态的恢复情况 算子联合列表状态主…...

CSS3 按钮

创建 CSS3 按钮可以通过组合样式属性和伪类来实现 <!DOCTYPE html> <html> <head><link rel"stylesheet" type"text/css" href"styles.css"> </head> <body><button class"basic-button">…...

STM32 BootLoader设置

编写bootloader程序&#xff1a; 直接复制下面代码到自己程序中。 typedef void (*iapfun)(void); //定义一个函数类型的参数. iapfun jump2app; //设置栈顶地址 //addr:栈顶地址 __asm void MSR_MSP(u32 addr) {MSR MSP, r0 //set Main Stack valueBX r14 }//跳转到…...

django REST framework-使用与不使用的区别?

首先&#xff0c;来回顾一下传统的基于模板引擎的 django 开发工作流&#xff1a; 绑定 URL 和视图函数。当用户访问某个 URL 时&#xff0c;调用绑定的视图函数进行处理。 编写视图函数的逻辑。视图中通常涉及数据库的操作。 在视图中渲染 HTML 模板&#xff0c;返回 HTTP 响应…...

获取URL中的参数

获取URL中的参数 function getUrlParam(name) {var reg new RegExp("(^|&)" name "([^&]*)(&|$)");var r window.location.search.substr(1).match(reg);if (r ! null)return unescape(r[2]);return null; } 这个正则表达式就是一个URL路…...

一起学数据结构(9)——二叉树的链式存储及相关功能实现

目录 1. 二叉树的链式存储&#xff1a; 2. 二叉树的前序遍历&#xff1a; 3. 二叉树的中序遍历&#xff1a; 4. 二叉树的后序遍历&#xff1a; 5. 统计二叉树的结点总数 6.统计二叉树的叶子结点数&#xff1a; 7. 统计二叉树第层的结点数量&#xff1a; 8. 二叉树的销毁…...

vue 后端返回二进制流-前端通过blob对象下载文件-图片

前言 在实际开发中我们经常会遇见下载文件的场景&#xff0c;比如下载合同&#xff0c;下载文件 下载文件有2种方式&#xff0c;一种是后端返回二进制流&#xff0c;前端通过blob对象接受根据不同类型下载 还有一种把地址直接在浏览器新窗口打开浏览器打开pdf可以预览和下载&…...

vue el-dialog封装成子组件(组件化)

前言 实际开发过程中我们经常听见组件化开发&#xff0c;但在实际开发过程中&#xff08;没有人审查时&#xff09;怎么方便来 我们有时是因为时间不够&#xff0c;所以把所有代码写在一个页面。当业务逻辑复杂时可能会有1k多行 虽然不能要求自己写出高效复用性高的组件&…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...