团队git操作流程

项目的开发要求

  • 项目组厉员每天代码提交不少于20次
  • 企业项目开发代码的每天的提交一般提交3-5次
  • 代码仓库的管理

git的基础操作流程

  • 命令模式 git push
  • 插件模式 vscode git graph
  • GUI软件管理模式 sourcetree

git在项目团队化开发中的应用

  • master(一般是不动的)
  • dev (主要是拿来代码合并的,其实相当于的是一个桥梁,中转站)
  • xxx1、xxx2、xxx3(主要是拿来工作的,每个人只能操作自己的xxx)
第一原则:仓库操作永远先拉取再提交,永远拉dev 

1. 远程分支创建

 1)点击 master 框,点击 管理

 2)点击新建分支

3) 填写分支名,点击确认

4)创建成功

2. 本地分支创建命令

git branch 分支名    // 方法一:创建分支
git checkout -b 分支名    // 方法二:创建并切换当前分支

 3. 进入到 dev 分支,将远程的 dev 拉取到本地的 dev

git remote -v  // 查看是否连接了远程仓库
git remote add origin 仓库链接  // 连接远程仓库
// 第一次拉取时需要执行的操作
git pull --rebase origin dev // 拉取远程仓库最新分支并且合并// 除了第一次之后都使用此命令进行拉取git pull  // 将远程仓库所有内容拉取到工作目录(提交时,先拉pull再推push)
第二原则:本地永远也不操作 dev,dev 是桥梁,是中转站,本地应该操作的是自己的分支 vane 

4. 切换到 vane 分支,并且需要将 dev 分支的代码合并到 vane 分支上(现在就可以在 vane 分支上进行任意的代码修改)

git checkout -b 分支名  // 方法一:创建并切换当前分支
git checkout 分支名   // 方法二:切换分支
git merge 分支名   // 把指定的分支合并到当前分支上

5. 执行完操作后,提交到本地仓库 

git add 文件名 :提交到暂存区    git add . :将所有提交到暂存区
git commit -m "" :提交到本地仓库,添加注释git commit -am "" :  有-a情况下可以将add和commit合并一起操作
第三原则:本地仓库推送到远程,永远不要推送自己的分支 

6. 切换到 dev 分支,并且需要将 vane 分支的代码合并到 dev 分支上

git checkout 分支名   // 切换分支
git merge 分支名   // 把指定的分支合并到当前分支上

注:远程 dev 分支只能拉取,不能推送 

 7. 将本地的 dev 分支推送到远程的 vane 分支( 自定义分支 )

git pull  // 将远程仓库所有内容拉取到工作目录(提交时,先拉pull再推push)
git push -u origin 分支名  // 提交远程仓库命令(指定提交到那个分支)

例:远程中有 master、dev、 vane、frank、rose等分支

        组员的本地仓库需要有 master、dev、 vane(自己定义的与远程同名的分支) 分支

        组长的本地仓库是有master、dev、vane、frank、rose 等分支

8.  冲突解决

        1)假设组长将远程的 rose 分支合并到远程的 dev 分支中后

        2)组员 vane 将远程的 dev 分支拉取到本地的 dev 分支上(出现冲突)

        3)注:每个人解决冲突的分支都在 dev 分支

        4)解决完冲突进行commit提交

git add 文件名 :提交到暂存区    git add . :将所有提交到暂存区
git commit -m "" :提交到本地仓库,添加注释git commit -am "" :  有-a情况下可以将add和commit合并一起操作

         5)提交后,再切换到自身分支 vane, 并且将 dev 分支的代码合并到当前 vane 分支上 

git checkout 分支名   // 切换分支
git merge 分支名   // 把指定的分支合并到当前分支上
第四原则:公共文件一般只交给组长写 

9. 确认忽略目录与文件,如:

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

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

相关文章

2. 如何通过公网IP端口映射访问到设备的vmware虚拟机的ubuntu服务器

文章目录 1. 主机设备是Windows 11系统2. 安装vmware虚拟机3. 创建ubuntu虚拟机(据说CentOS 7 明年就不维护了,就不用这个版本的linux了)4. 安装nginx服务:默认端口805. 安装ssh服务:默认端口226. 设置主机 -> ubuntu的端口映射7. 设置路由…

【Amis Low Code 结合FastAPI进行前端框架开发】

官方文档 封装思想 直接复制官网json数据即可开发每个json中的接口由fastapi 转发(透传)使其开发模式与前端思维一致 基础组件 from amis import Page, Service, App from pydantic import BaseModel, Field from fastapi import FastAPI, Request, …

vue:this.reload()跟this.$router.replace的区别

this.reload() 页面是否会执行 created, 它跟 this.$router.replace的区别 都是页面初始化, url地址中没有rowId,reload可以使用,最终也是对路由进行刷新, 一个祖先组件通过设置provide/inject向其所有子孙后代注入一个…

c++学习之智能指针

前言:在此之前我们已经学习到了异常的使用,虽然异常在大部分情况都还可以,但也存在太多缺陷,对于异常的问题,入内存泄漏,在复杂的场景下使用起来也是非常麻烦。为了更好的解决这些问题,c11中引入…

Vue中比较两个JSON对象的差异

要在Vue.js中实现JSON数据的对比差异功能,你可以使用一些库来简化任务,比如diff-match-patch。以下是一个简单的例子,演示如何使用deep-diff库在Vue.js中比较两个JSON对象的差异: 首先,确保你的项目中已经安装了diff-m…

C语言—每日选择题—Day45

第一题 1. 以下选项中,对基本类型相同的指针变量不能进行运算的运算符是() A: B:- C: D: 答案及解析 A A:错误,指针不可以相加,因为指针相加可能发生越界&…

使用 Vue 3 框架编写的简单日历组件

这段代码是一个使用 Vue 3 框架编写的简单日历组件。下面是代码的详细解析: 模板部分(Template): 定义了一个名为 "calendar" 的 div,它包含了一个头部分(header)和三个主要部分&…

【华为数据之道学习笔记】4-2信息架构原则:建立企业层面的共同行为准则

信息架构承载了企业如何管理数据资产的方法,需要从整个企业 层面制订统一的原则,这些原则不仅是对数据专业人员的要求,也是对业务的要求,因为业务才是真正的数据Owner。所以,公司所有业务部门都应该共同遵从信息架构原…

Redis安装教程

文章目录 Redis安装说明1.单机安装Redis1.1.安装Redis依赖1.2.上传安装包并解压1.3.启动1.3.1.默认启动1.3.2.指定配置启动1.3.3.开机自启 2.Redis客户端2.1.Redis命令行客户端2.2.图形化桌面客户端2.2.1.安装2.2.2.建立连接 Redis安装说明 大多数企业都是基于Linux服务器来部…

用Java版本爬虫-WebMagic

我长期关注和实践各种网页数据爬取技术。今天,我想分享我的经验,特别是使用 WebMagic 框架来爬取淘宝网的数据。WebMagic 是一个灵活、强大的Java爬虫框架,适合于数据挖掘和网页内容分析。 WebMagic 简介 WebMagic 是一个简单而强大的 Java…

【clickhouse】ck远程访问另一个ck

代码实现 CREATE TABLE tmp.tbsas remote( host, database_name, table_name, user, password );就相当于从ck1直接请求ck2 参考文档 https://github.com/ClickHouse/ClickHouse/issues/15295 https://clickhouse.com/docs/zh/sql-reference/table-functions/remote

FFmpeg之AVFilterPad

AVFilterPad起一个输入和输出接口的作用 结构体 /*** A filter pad used for either input or output.*/ struct AVFilterPad {/*** Pad name. The name is unique among inputs and among outputs, but an* input may have the same name as an output. This may be NULL if …

go context.todo生成默认空的上下文

在 Go 语言的标准库中,context.TODO() 是一个函数,用于返回一个空的 Context 对象。TODO 是 "to do" 的缩写,表示该上下文对象被保留作为将来可能使用的占位符。 Context 是 Go 语言中用于传递请求的上下文环境的一种机制。它可以用…

LeetCode(58)随机链表的复制【链表】【中等】

目录 1.题目2.答案3.提交结果截图 链接: 随机链表的复制 1.题目 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节…

kafka常见问题处理

1. 如何防⽌消息丢失 在生产者层面,我们有个ack参数确认机制 设置成-1,也就是副本全部同步了leader才发送ack,这样确保leader和副本挂掉只剩一个还能 保证消息不丢失 消费者: 把⾃动提交改成⼿动提交 2. 如何防⽌重复消费 在…

Node.js中的EventEmitter类介绍

1.EventEmitter类说明 EventEmitter 是 Node.js 中的一个核心模块,它提供了一种实现事件驱动编程的机制。它是一个基于观察者模式的类,用于在应用程序中处理事件和触发事件。 Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。 Node.js…

TCP/UDP 的区别及优缺点

1.TCP协议 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP协议通过建立连接、数据确认(编段号和确认号)和数据重传等机制,保证了数据的可靠性…

​secrets --- 生成管理密码的安全随机数​

3.6 新版功能. 源代码: Lib/secrets.py secrets 模块用于生成高度加密的随机数,适于管理密码、账户验证、安全凭据及机密数据。 最好用 secrets 替代 random 模块的默认伪随机数生成器,该生成器适用于建模和模拟,不宜用于安全与加密。 参见…

Orange Comet利用Sui Kiosk进行游戏道具和知识产权保护

Orange Comet与AMC合作开发基于《行尸走肉》系列的NFT和游戏,首要关注的问题就是保护AMC的知识产权。利用Sui的Kiosk原语不仅让Orange Comet向AMC保证其资产安全,而且为即将推出的《行尸走肉大陆》游戏打开了无限的可能性。 Kiosk是Sui上的一个原语&…

记录一次chatGPT人机协同实战辅助科研——根据词库自动进行情感分析

有一个Excel中的一列,读取文本判断文本包含积极情感词.txt和消极情感词.txt的个数,分别生成两列统计数据 请将 ‘your_file.xlsx’ 替换为你的Excel文件名,Your Text Column’替换为包含文本的列名。 这个程序首先读取了积极和消极情感词&…