Git基础操作快速入门
Git是一个免费开源分布式版本控制工具,是由Linux的作者Linus开发的第二个伟大作品。2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了
目前使用Git作为版本控制的开源软件:Linux kernel,Android,jQuery,Ruby on Rails,github,码云Gitee等
Git官网可以下载:https://git-scm.com/
1.Git安装
1.1Git服务器的安装
2.Git命令操作
2.1Git交互流程图
- Clone:克隆,从共享仓库/中央仓库将代码拷贝一份下来
- Commit:提交,提交的本地仓库
- PUSH:推送,将本地仓库代码推送到远程中央仓库
- PULL:拉取,从远程仓库下载最新的代码
- Git是先提交到本地仓库,然后再推送
2.2 工作区&暂存区
2.3Git命令操作
桌面新建三个文件夹:
模拟两个开发人员本地仓库:gittest/user1 和 gittest/user2
模拟项目经理远程仓库master:gittest
==============仓库管理员或项目经理操作========================
第一步: 创建仓库,进入gittest目录 - 右键Git Bash here
git init --bare pethome
-- pethome仓库名称可以改【--bare 是参数不用管】==============开发人员1操作=============================
第二步:克隆,进入usr1目录 - 右键Git Bash here
git clone ../pethome -- 相对路径的写法【使用TAB自动补全】第三步:设置个人信息【用户名和邮箱】
cd pethome
git config user.name "user1"
git config user.email "user1@163.com"第四步:新建一个文件并写入数据
echo "User1 add content" > index.jsp
-- 会自动创建文件,并将User1 add content字符串写入index.jsp【>>追加写】第五步:添加并提交文件 -- 提交到本地仓库
git add index.jsp -- 添加到暂存区
git commit -m "User1 add the file"第六步:把自己的仓库提交到公共服务器
git push origin master==============开发人员2操作=============================
第七步:克隆,进入usr2目录 - 右键Git Bash here
git clone ../pethome -- 相对路径的写法【使用TAB自动补全】第八步:设置个人信息【如果不这是在提交的时候会出问题】
cd pethome
git config user.name "user2"
git config user.email "user2@163.com"第九步:编写代码:>表示覆盖写,>>表示追加写
echo "User2 add content" >> index.jsp第十步:添加并提交文件 -- 提交到本地仓库
git add index.jsp -- 添加到暂存区
git commit -m "User2 add the file!" -- 【-m表示message】第十一步:把自己的仓库提交到公共服务器
git push origin master==============开发人员1操作=============================
第十二步:拉取远程服务器最新数据
git pull
其他常用命令
git config --list #查看全局配置
git status #查看本地库状态
git checkout 分支名 #分支切换
git fetch #抓取分支
git reflog #查看版本信息
git branch #查看本地分支信息
git reset --hard 版本号 #版本穿梭
git reset --hard origin/develop #将本地分支重置到远程分支的状态
git rm --cached file.txt #忽略已经被追踪的文件
git add . #将所有发生变动的文件添加到暂存区
3.idea上操作git
3.1 提交文件
或
3.2拉取代码
3.3解决冲突
正常推送代码,如果出现如下情况可能,就是发生冲突了:
意思是本地代码和远程代码不一样,需要我们手动合并代码,点击 Merge 合并
点击Merge手动合并
中间区域是最终的效果,把中间区域改成你想要的代码即可,然后点击 apply 应用
解决完冲突后,重新执行推送流程
4.分支管理
使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线,不同分支的代码是相互隔离的,也可以通过合并分支的方式来把多个分支的代码合并再一起。企业中,有严格的项目代码控制,不是任何人都能随意操作核心代码。项目开发都是协同开发,必定是多个人来一起开发同一个项目,如果大家都在同一个代码库上去做操作,代码很容易发生冲突。所以,分支开发模式就应运而生。在分支上做开发,调试好了后再合并到主分支。那么每个人开发模块都不会影响到别人。
4.1完整的git版本分支模型图
- master 主分支
master分支是Git默认的主分支,它包含了项目的稳定版本。通常,master分支用于发布正式版本,即经过测试和验证的可靠代码。一般情况下,不应该直接在master分支上进行开发,而是通过其他分支进行开发,并在开发完成后将代码合并到master分支。
- release 预发布分支
release 分支可以认为是 master 分支的未测试版,基于develop分支克隆,主要用于打包给测试人员测试,比如说某一期的功能全部开发完成,那么就将 develop 分支合并到 release 分支,测试没有问题就合并到master 分支,只有develop分支可以合并到该分支上,在测试过程中发现的BUG就从该分支再切一个分支进行修复,修复完之后再合并到develop分支
- develop 开发分支
基于master分支克隆日常开发分支,该分支正常保存了开发的最新代码,不在该分支上开发,在feature分支上开发具体的新功能然后合并到该分支上,当某一期的功能全部开发完成就合并到release分支,打包给测试人员测试
- feature (开发新功能)
feature分支是用于开发单个功能或解决某个问题的分支。当需要开发新功能时,可以从develop分支上创建一个新的feature分支,并在该分支上进行开发工作。在feature分支上进行的开发工作是相对独立的,不会影响其他分支的代码。一旦功能开发完成并通过测试,可以将feature分支合并回develop分支
- hotfix (紧急修复)
线上紧急bug修复分支 ,基于master分支克隆, 用于对线上版本的BUG进行修复 ,BUG修复完之后需要合并到develop和master分支
4.2分支的使用
4.2.1IDEA中创建分支
在IDEA任务栏右下角有一个 : Get:master代表当前工作空间是在master分支
如图:这里有一些Git的常用操作,如果需要创建一个新的分支可以使用 Get:master -> New Branch 可以新建一个分支,然后填上分支名。
如果想要切换到某一个分支,可以直接选中分支名 -> 点击 check out 即可切换。比如我们可以选中: remote 下的 feature分支,然后进行checkout ,那么工作空间就会切换到 feature分支。
4.2.2合并分支
现在我们在自己的feature分支中编写好功能,然后接下来就是需要把代码合并到 Develop分支了。首先我们在IDEA工具中把代码切换到开发分支
切过来发现 项目中是没有 这是我新写的代码.txt刚才写的代码的。那么就是需要我们把feature分支中的代码合并过来,如下:(在develop分支把feature分支的代码合并到develop分支) ,合并代码是有可能产生冲突的,需要根据情况解决冲突
合并过来之后就发现在当前分支就有了feature分支的代码了,然后我们可以pull(拉取)一下远程代码,如果有冲突就解决冲突,没冲突就可以push代码到develop的远程分支了。
相关文章:
Git基础操作快速入门
Git是一个免费开源分布式版本控制工具,是由Linux的作者Linus开发的第二个伟大作品。2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了 目前使用Git作为版本控制的开源软件&#…...
vue‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
在Windows操作系统中,安装了nodeJs之后,并且也安装了vue依赖包,但是在cmd控制台运行vue的时候,会报错:vue‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。针对这个问题我提供如下解决办法,并且是有效的。 一、原因分析 关于尝试这个问题的主要原因,我分析主要…...
JAVA安全—SpringBoot框架MyBatis注入Thymeleaf模板注入
前言 之前我们讲了JAVA的一些组件安全,比如Log4j,fastjson。今天讲一下框架安全,就是这个也是比较常见的SpringBoot框架。 SpringBoot框架 Spring Boot是由Pivotal团队提供的一套开源框架,可以简化spring应用的创建及部署。它提…...
Milvus向量数据库05-常见问题整理
Milvus向量数据库05-常见问题整理 1-什么是PipeLine 这张图展示了一个文档处理和搜索系统的架构,主要分为两个部分:Ingestion Pipeline(摄取管道)和 Search Pipeline(搜索管道)。下面是对图中各部分的详细…...
strncpy在复制含有多个\0的字符串时遇到的问题
strncpy在复制含有多个\0的字符串的时候,会产生截断,因为strncpy在读取源字符串的时候,遇到了\0,函数会认为该字符串已经结束了,然后会向目标字符串内填充\0。 char buffer[100] "ak\0jl";for (int i 0; i…...
C++作业3
作业1: 1.定义一个矩形类Rec,包含私有属性length、width,包含公有成员方法: void set_length(int l);//设置长度 Void set_width(int w);//设置宽度 Int get_length();//获取长度,将长度的值返回给调用处 Int get_widt…...
重生之我在学Vue--第1天 Vue 3 基础与开发环境搭建
重生之我在学Vue–第1天 Vue 3 基础与开发环境搭建 文章目录 重生之我在学Vue--第1天 Vue 3 基础与开发环境搭建前言一、Vue 3 的特点与核心概念二、搭建开发环境1. 安装 Node.js2. 使用 Vite 创建 Vue 3 项目创建项目进入项目目录并安装依赖启动开发服务器 3. 理解项目结构 三…...
企业经营数据分析系统:提升决策能力的利器
搭建企业经营数据分析系统是当今企业绕不开的话题,企业想要在竞争激烈的市场当中突围而出,需要对于企业内部的各种数据了然于胸,同时对于外部的数据也有敏锐的把握能力,因此企业构建自身的经营性数据分析系统就显得尤其重要。作为…...
Linux笔记9 DNS域名解析服务器
简介 DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分 布式数据库,能够使人更方便的访问互联网。 DNS使用的是53端口, 通常DNS是以UDP这个较快速的数据传输协议来查询的&#x…...
鸿蒙高级开发者认证的主观题试题及答案
以下是一份鸿蒙高级开发者认证的主观题试题及答案示例,涵盖了鸿蒙开发中的多个关键技术和应用场景相关内容,希望对你有所帮助: 一、论述题(每题 20 分,共 60 分) 1. 阐述鸿蒙操作系统中分布式软总线的工作原理、核心优势以及在多设备协同应用开发场景下的应用方式,并举…...
leetcode_547 省份数量
该题主要运用了图的连通性 接着使用染色法解决该问题 染色法:标记所有节点为false 访问后 将其标记位true class Solution {int n; // 代表n个数据bool colors[201]; // 标记是否访问到void dfs(vector<vector<int>>& isConnected, int u) { // …...
【开源】一款基于SpringBoot 的全开源充电桩平台
一、下载项目文件 下载源码项目文件口令:动作璆璜量子屏多好/~d1b8356ox2~:/复制口令后,进入夸克网盘app即可保存(如果复制到夸克app没有跳转资源,可以复制粘贴口令到夸克app的搜索框也可以打开(不用点搜索按钮&#…...
react antd tabs router 基础管理后台模版
在构建 React 后台管理系统时,使用标签页的方式展示路由是一种高效且用户友好的设计模式。这种实现方式通常允许用户在多个页面之间快速切换,并保留页面的状态,类似于浏览器的多标签页功能。 需求分析 1.动态标签页:根据用户的导…...
uniapp uni-table最简单固定表头
需求:固定表头数据,在网上找了半天,啥都有,就是一直实现不了,最后更改代码实现 1.效果 2.主要代码讲解完整代码 表格的父级一定要设置高度,不然会错位,我看网上说设置position:fixed…...
从0到1实现项目Docker编排部署
在深入讨论 Docker 编排之前,首先让我们了解一下 Docker 技术本身。Docker 是一个开源平台,旨在帮助开发者自动化应用程序的部署、扩展和管理。自 2013 年推出以来,Docker 迅速发展成为现代软件开发和运维领域不可或缺的重要工具。 Docker 采…...
Mac软件推荐
Mac软件推荐 截图SnipasteXnipBob 快捷启动Raycast 系统检测Stats 解压缩The UnarchiverKeka(付费) 视频播放IINA 视频下载Downie(付费) 屏幕刘海TopNotchMediaMate(付费)NotchDrop(付费&#x…...
No.4 笔记 探索网络安全:揭开Web世界的隐秘防线
在这个数字时代,网络安全无处不在。了解Web安全的基本知识,不仅能保护我们自己,也能帮助我们在技术上更进一步。让我们一起深入探索Web安全的世界,掌握那些必备的安全知识! 1. 客户端与WEB应用安全 前端漏洞࿱…...
Unity-Webview 使用指南
Unity-Webview 使用指南 Unity-Webview 主に gree/unity-webview のリファクタリング。本家を元に改良してく! [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/uni/Unity-Webview Unity-Webview 是一个专为 Unity 开发的 WebView 插件,使开…...
【Vue】自定义指令、插槽
目录 自定义指令 是什么 作用 使用方法 定义 使用 自定义指令配合绑定数据 语法 自定义指令的简写 语法 使用时机 插槽 什么是插槽 默认(匿名)插槽 编辑插槽的默认值 具名插槽 使用方法 简写 使用示例 作用域插槽 自定义指令 是什…...
AI - RAG中的状态化管理聊天记录
AI - RAG中的状态化管理聊天记录 大家好,今天我们来聊聊LangChain和LLM中一个重要的话题——状态化管理聊天记录。在使用大语言模型(LLM)的时候,聊天记录(History)和状态(State)管理是非常关键的。那我们先…...
微服务网关SpringCloudGateway、Kong比较
网关产品 1. Spring Cloud Gateway 基本信息 Spring Cloud Gateway是Spring Cloud生态系统中的一个组件,基于Spring 5、Project Reactor和Spring Boot 2构建。它旨在为微服务架构提供一种简单而有效的API网关解决方案。 功能特点 路由功能强大:使用Rou…...
MVC基础语法
文章目录 项目地址一、MVC的传值方式1.1 ViewBag和ViewData传值1.1.1 ViewBag1.1.2 ViewData 1.2 视图模型传值(ViewModel) 二、HttpConntext上下文三、中间件 项目地址 教程作者:誉尚学教育教程地址: https://www.bilibili.com…...
Web day09 会话技术 JWT令牌 Filter Interceptor
目录 会话技术: 1.Cookie: 2.Session: 3.令牌技术: JWT令牌: 生成JWT令牌: 校验JWT令牌(解析生成的令牌) 登陆时下发令牌: 过滤器Filter: 拦截器Inte…...
OpenCV相机标定与3D重建(14)用于组合两个旋转和平移(R|T)变换函数composeRT()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::composeRT 是 OpenCV 库中的一个函数,用于组合两个旋转和平移(R|T)变换。这个函数可以将两个连续的刚体变…...
leetcode33.搜索旋转排序数组
整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], ..., nums[n-1], nums[0], nums[1], ..…...
TMS Software:TMS BIZ产品——TMS XData
TMS XData 用于多层REST/JSON HTTP/HTTPS应用服务器开发和ORM远程处理的Delphi框架。 TMS扩展数据可同时用于以下框架: VCLWEBFMX TMS XData可同时用于以下操作系统/浏览器: TMS XData可同时用于以下IDE: 功能概述 基于REST/JSON架构风格的…...
leecode中的面试100题
isalnum函数用于检查一个字符是否为字母或数字。它的参数是一个int类型 isupper() 是大写 islower() 是小写 toupper() 变成大写 tolower() 变成小写 do while 首先不管怎么 先执行do一次 然后执行完了之后 在判断while如果符合while里面就继续执行do vector容器中insert…...
不同类型的集成技术——Bagging、Boosting、Stacking、Voting、Blending简述
目录 一、说明 二、堆叠 2.1 堆叠的工作原理: 2.2 例子: 2.3 堆叠的优点: 三、投票(简单投票) 3.1 例子: 3.2 投票的优点: 四、装袋和投票之间的区别 五、混合 6.1 混合的主要特征: …...
【从零开始入门unity游戏开发之——C#篇01】理论开篇
文章目录 前言前置条件什么是编程?什么是代码?什么是编程语言?常见的编程语言什么是C#?学习Unity为什么要先学习C#?选择适合自己的IDE集成开发环境VSCode安装和环境配置VSCode调试模式专栏推荐完结 前言 这个系列我想…...
TCP的“可靠性”(上)
目录 TCP的“可靠性”(上)确认应答(可靠性传输的基础)超时重传连接管理(三次握手,四次挥手) TCP的“可靠性”(上) 想必大家都或多或少的听说过TCP的特性:有连…...
Windows平台Unity3D下如何低延迟低资源占用播放RTMP或RTSP流?
技术探讨 自2017年我们发布跨平台的低延迟Unity下的RTSP|RTMP直播播放器后,Unity下的直播体验有了质的提升,特别是RTMP,从大家认知里面的几秒钟,直接缩减到100-300ms,满足了绝大多数场景下低延迟的技术诉求。今天就Un…...
burp的编解码,日志,比较器
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...
Vercel部署前端部署
Vercel 部署 今天要讲的是如何对别人向自己的开源仓库提的PR进行自动代码审核 1. 注册并登录Vercel 访问 Vercel官网点击右上角的"Sign Up"选择使用GitHub、GitLab、Bitbucket或邮箱注册完成注册流程并登录 2. 连接代码仓库 在Vercel仪表板,点击"New Proje…...
Jenkins相关的Api接口调用详解
Jenkins API是Jenkins持续集成和持续部署(CI/CD)平台提供的一组接口,允许外部程序通过HTTP请求与Jenkins进行交互。以下是对Jenkins API使用的简介: 一、Jenkins API的主要功能 作业管理:通过API,可以创建、配置、删除以及查询作业(Job)。构建触发:可以远程触发新的构…...
HBU深度学习实验15-循环神经网络(2)
LSTM的记忆能力实验 飞桨AI Studio星河社区-人工智能学习与实训社区 (baidu.com) 长短期记忆网络(Long Short-Term Memory Network,LSTM)是一种可以有效缓解长程依赖问题的循环神经网络.LSTM 的特点是引入了一个新的内部状态&am…...
洛谷P1364 医院设置(c嘎嘎)
题目链接:P1364 医院设置 - 洛谷 | 计算机科学教育新生态 题目难度:普及/提高 数据规模与约定: 对于 100%100% 的数据,保证 1≤n≤1001≤n≤100,0≤u,v≤n0≤u,v≤n,1≤w≤1051≤w≤105。 解题思路&…...
Java死锁问题如何解决?
大家好,我是锋哥。今天分享关于【Java死锁问题如何解决?】面试题。希望对大家有帮助; Java死锁问题如何解决? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Java中的死锁(Deadlock)是一种并发…...
go锁与chan的性能对比
锁的作用chan 的作用golang的数据并不是并发安全的为什么锁的性能更加优秀?如何选择? 锁的作用 解决并发安全问题,流程控制等 chan 的作用 线程通信(数据传输), 并发安全,流程控制 golang的数据并不是并发安全的 golang的变量并不是并发安全的锁与chan都可以解决并发安全…...
最小二乘法拟合出二阶响应面近似模型
背景:根据样本试验数据拟合出二阶响应面近似模型(正交二次型),并使用决定系数R和调整的决定系数R_adj来判断二阶响应面模型的拟合精度。 1、样本数据(来源:硕士论文《航空发动机用W形金属密封环密封性能分析…...
Scala的隐式转换
package hfdobject Test37 { //复习隐式转换//隐式转换:编译器 偷偷地,自动的帮我们把一种数据类型转换为另外一种类型//列如:int -->double//它有失败的时候(double -->int),有成功的时候//当它转换失败的时候,…...
vue中父组件接收子组件的多个参数的方法:$emit或事件总线
方法一:使用 $emit 方法 原理 子组件通过 $emit 方法向父组件发送事件,同时可以传递多个参数,父组件通过事件监听来接收这些参数。 示例 子组件代码 <template><div><button click"sendData">发送数据</…...
网络安全法-网络安全支持与促进
第二章 网络安全支持与促进 第十五条 国家建立和完善网络安全标准体系。国务院标准化行政主管部门和国务院其他有关部门根据各自的职责,组织制定并适时修订有关网络安全管理以及网络产品、服务和运行安全的国家标准、行业标准。 国家支持企业、研究机构、高等学…...
prometheusgrafana实现监控告警
Prometheus负责集群数据的监控和采集,然后传递给grafana进行可视化,集成睿象云可实现监控报警,为了方便操作,可以通过iframe嵌套grafana到指定的页面。 文章目录 1.Grafana集成Prometheus2.iframe内嵌grafana3.监控告警 1.Grafana…...
php:完整部署Grid++Report到php项目,并实现模板打印
一、下载Grid++Report软件 路径:开发者安装包下载 - 锐浪报表工具 二、 安装软件 1、对下载的压缩包运行内部的exe文件 2、选择语言 3、 完成安装引导 下一步即可 4、接收许可协议 点击“我接受” 5、选择安装路径 “浏览”选择安装路径,点击"安装" 6、完成…...
【数据结构】基数排序的原理及实现
👦个人主页:Weraphael ✍🏻作者简介:目前正在准备26考研 ✈️专栏:数据结构 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 如果文章…...
Unix/Linux 命令行重定向操作
2>/dev/null 是一个常见的 Unix/Linux 命令行重定向操作,用于将标准错误(stderr)输出重定向到 /dev/null,即丢弃错误信息而不显示。理解这个表达式需要了解几个概念:文件描述符、重定向和特殊文件 /dev/null。 ###…...
leetcode周赛-3379. 转换数组
给你一个整数数组 nums,它表示一个循环数组。请你遵循以下规则创建一个大小 相同 的新数组 result : 对于每个下标 i(其中 0 < i < nums.length),独立执行以下操作: 如果 nums[i] > 0࿱…...
D89【python 接口自动化学习】- pytest基础用法
day89 pytest的setup,setdown详解 学习日期:20241205 学习目标:pytest基础用法 -- pytest的setup,setdown详解 学习笔记: setup、teardown详解 模块级 setup_module/teardown_module 开始于模块始末,生…...
【Appium】AttributeError: ‘NoneType‘ object has no attribute ‘to_capabilities‘
目录 1、报错内容 2、解决方案 (1)检查 (2)报错原因 (3)解决步骤 3、解决结果 1、报错内容 在PyCharm编写好脚本后,模拟器和appium也是连接成功的,但是运行脚本时报错&…...
【机器人】轨迹规划 之 spline 规划
在轨迹规划中,使用 spline (通常是指通过样条曲线进行轨迹规划)可以实现平滑、连续的路径。以下是使用样条(如B样条、三次样条插值)的具体方法和步骤,结合一个简单的例子说明: 示例场景…...