关于git使用的图文教程(包括基本使用,处理冲突问题等等)超详细
目录
用户签名,初始化git
git提交流程图
提交到本地库
版本穿梭
分支操作
分支合并冲突
团队协作
github的使用
推送代码
克隆
拉取代码
团队协作冲突
团队协作之分支管理
推送分支到分支:
拉去远程库分支到本地库:
本地删除远程分支:
gitignore
用户签名,初始化git
--global是全局设置的意思
git提交流程图
master又叫历史区
提交到本地库
git status //显示暂存区状态(绿色表示在暂存区,红色的表示没在暂存区的)git rm --cached 1.txt (从暂存区删除该文件)
当提交完后,暂存区会被清空。当你提交过后,你之后又要提交,直接git add . 后会自动区分哪个文件修改了(只会把修改过的文件提交到暂存区中)
注意:在git log后,如果你的信息过多,会让你一直回车才能显示完,
如果要在中途或者最后显示完后退出:按下q键就行了
如果在git commint 之后忘记-m 注释了 会直接跳到vrm编辑界面:
因为提交时必须要注释,这个时候按下i后变成insert模式,然后就可以写注释了(不要写在井号里):
这个时候注释(A功能-22222)就写好了,退出的话先按esc退出insert模式然后输入:wq然后直接回车就行了
版本穿梭
head表示当前位置,master是默认主分支。
如果往回退了一下,这时候用git log是看不到后面的分支的,只能看到目前结点和前面的分支
这时候要用git reflog就可以看到所有记录了:
也可以通过这个字符串来回退(git reflog , git log 都可以看到):
注意:回退后会导致工作区代码同样发生回退(硬回退)
如果不想工作区代码发生回退可以用软回退,这样只会回到缓存区:
软回退的作用:
1.重新git commit -m "XXXXX" 改变注释的内容
2.如果某个文件有bug,但是又不想修改bug单独占一个结点,可以先把这个结点返回到暂存区中然后再把修改的新代码add到暂存区,然后再提交到历史区
所以尽量不要用reset,用revert.
revert相当于你回退到了版本1,但是不会对其他版本造成影响,而是新造一个版本,这个版本就是版本1了
新生成一条记录,所以会有注释
直接写在上面
而我觉得版本回退最重要的作用:
如果某次推送不小心推送错了代码,这时可直接revert回退到上个版本再次推送即可覆盖
如果有人不小心把分支代码不小心提交到了远程库的主分支上:
重置 master
分支到之前的状态 你可以使用 git reset
来重置 master
分支到目标提交:
git checkout master # 切换到 master 分支
git reset --hard <commit-id> # 将 master 分支重置到目标提交
分支操作
为什么要有分支:
当测试人员在测试先版本时,如果开发人员又更新了版本测试版本就会发生改变
分支合并冲突
假如现在再写一个分支的代码,但是主分支有个bug要修改,修改完后等分支写完合并的时候会自动合并失败:
同时会自动进入手动合并状态。这时候打开合并的文件会发现:
这时候可以手动决定如何修改。修改完后,记得退出手动合并状态(提交至历史区):
团队协作
github的使用
点击第一个创建仓库
填写完名称即可创建(公开为所有人都能看,只有选定的人才能提交。私有为只能选定的人才能看和提交)
git remote add origin https://github.com/huangzhijun0210/test_warehouse.git
//把https://github.com/huangzhijun0210/test_warehouse.git取别名origin
通过remote -v查看是否关联上了:
如果写的时候不小心写错了可通过以下命令删除:
推送代码
git push -u origin master:master
//git push为默认,origin为推向的地址,master为要推送到的分支,
//后面的:master(代表要推送到远程仓库的分支)可以省略,默认是master
//-u:可加可不加,加上后设置这条推送为默认推送,以后直接git push就是默认推送了
推送完整流程:
克隆
当团队中来了另外一个人,这时候没有连上远程终端不能pull代码,所以需要克隆先把代码克隆下来:
拉取代码
git pull origin master
//从远程仓库master分支拉取
pull只拉取更新的,有修改的。拉去后和本地进行合并
团队协作冲突
这篇博客将多人协作和冲突问题解释得很清楚:
Git推送到远程仓库GitHub以及多人协作开发_多人维护的git推到远程仓库-CSDN博客
当另外一个人在同一个文件夹下推送后,你再次推送,就会报错:版本错误,这时候需要你先拉取最新版本,再推送
因为两个人改的不是同一个文件,所以直接esc,:wq退出即可
如果另外一个人修改了你要推送的代码,你pull后会进入手动合并状态,这时需要先手动合并代码才能推送上去
团队协作之分支管理
推送分支到分支:
注意:不要把本地的分支推到远程的master上,这样写是错误的
拉去远程库分支到本地库:
这时不需要指定本地库的分支名,这时你直接切换会基于远程的login分支直接创建出本地的login分支(所以本地库的分支最好跟远程库的名字相对应,同样的推送如果名字相对应推送也可以省略远程库的分支名,一样会成功)
本地删除远程分支:
直接用空分支覆盖本地分支。
当分支功能完成后和主分支合并后再推送到远程主分支上,然后就要删掉远程库的分支
gitignore
创建完.gitignore后,写上不想上传的文件名,这时这个文件就会变灰,在上传到远程库时就会忽略掉
这样子就是所有txt文件全部被忽略了
相关文章:
关于git使用的图文教程(包括基本使用,处理冲突问题等等)超详细
目录 用户签名,初始化git git提交流程图 提交到本地库 版本穿梭 分支操作 分支合并冲突 团队协作 github的使用 推送代码 克隆 拉取代码 团队协作冲突 团队协作之分支管理 推送分支到分支: 拉去远程库分支到本地库: 本地删除远程分支&am…...
Axios 的 responseType 属性详解及 Blob 与 ArrayBuffer 解析
在前端开发的广阔天地中,Axios 犹如一颗璀璨的明星,为我们与服务器之间的通信搭建起坚实的桥梁。其中,responseType 属性更是赋予了我们灵活处理服务器响应的强大能力。 一、Axios 的 responseType 属性值及示例 1.arraybuffer 当我们将 r…...
redis集群介绍
1. 节点(Node): • Redis集群中的单个Redis服务器实例。每个节点都运行一个Redis服务器进程,并维护自己的数据。 2. 分片(Sharding): • 将数据集分割成多个部分,并分布到不同的节点…...
JDK中常用的包有哪些?
1.java.lang 描述:包含Java语言的核心类,不需要显式导入。 常用类:Object、String、Math、System、Thread、Exception等。 2.java.util 描述:提供了集合框架、日期和时间功能、随机数生成、扫描和格式化等实用工具类。 常用类…...
校园官网练习---web
HTML: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>西安工商学院</title><…...
MySQL中指定字段的某个值排在前面
一 需求 如果我们想讲表中指定的字段的某一个值排序在最前面应该如何处理? 二 实现方式 方法 1、使用<>,xml中使用<![CDATA[跳过解析的特殊符号]]>或者<(小于符号)>(大于符号) ORDER …...
【51单片机】I2C总线详解 + AT24C02
学习使用的开发板:STC89C52RC/LE52RC 编程软件:Keil5 烧录软件:stc-isp 开发板实图: 文章目录 AT24C02介绍存储器 I2C总线介绍I2C时序结构数据帧AT24C02数据帧 编程实例 —— 按键控制数据大小&存储器写入读出 AT24C02介绍 …...
直接插入排序法
任务描述 本关任务:要求编写程序实现直接插入排序的功能。 相关知识 直接插入排序,是指将无序序列中的各元素依次插入到已经有序的数组中。 假设数组中前 i-1 元素已经有序,现在要将线性表中第 i 个元素插入到前面的有序子表中,…...
mysql中InnoDB索引与MyISAM索引
mysql索引 InnoDB 索引存储 主键索引(聚簇索引) 定义:主键索引是 InnoDB 存储引擎的聚簇索引,它决定了表中数据的物理存储顺序。每个 InnoDB 表都有一个且仅有一个聚簇索引。存储:主键索引的叶子节点直接包含表的数…...
Redis如何保证数据不丢失(可靠性)
本文主要以学习为主,详细参考:微信公众平台 Redis 保证数据不丢失的主要手段有两个: 持久化 多机部署 我们分别来看它们两的具体实现细节。 1.Redis 持久化 持久化是指将数据从内存中存储到持久化存储介质中(如硬盘…...
【计网】物理层学习笔记
【计网】物理层 物理层概述 物理层要实现的功能 在各种传输媒体上传输比特0和1,进而为上面的数据链路层提供透明传输比特流的作用。 物理层接口特性 物理层之下的传输媒体 传输媒体是计网设备之间的物理通路,也称为传输介质。 传输媒体并不包含在…...
vue链接跳转
在 Vue 3 的组合式 API 中,你可以使用 ref 和 setup 函数来实现外部链接跳转功能。 方法 1:使用 click 和 window.open(新标签页跳转) 这种方式在点击时会打开一个新标签页并跳转到外部链接。 <menu-item value"item2&…...
IP地址是电脑自带的吗?是根据什么而决定的
IP地址并非电脑自带,而是由网络运营商或网络服务提供商通过特定的协议和机制进行分配和管理的。要深入理解IP地址的来源和决定因素,我们需要从IP地址的基本概念、分配方式以及影响分配的因素等多个方面进行探讨。 IP地址,即互联网协议地址&am…...
JavaFX史上最全教程 - Shape - JavaFX矩形椭圆
avaFX Shape类定义了常见的形状,如线,矩形,圆,Arc,CubicCurve,Ellipse和QuadCurve。 在场景图上绘制矩形需要宽度,高度和左上角的(x,y)位置。 要在JavaFX中…...
SpringBoot实现的企业资产管理系统
2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常…...
python-读写Excel:openpyxl-(4)下拉选项设置
使用openpyxl库的DataValidation对象方法可添加下拉选择列表。 DataValidation参数说明: type: 数据类型("whole", "decimal", "list", "date", "time", "textLength", "custom"…...
【C++】详解RAII思想与智能指针
🌈 个人主页:谁在夜里看海. 🔥 个人专栏:《C系列》《Linux系列》 ⛰️ 丢掉幻想,准备斗争 目录 引言 内存泄漏 内存泄漏的危害 内存泄漏的处理 一、RAII思想 二、智能指针 1.auto_ptr 实现原理 模拟实现 弊端…...
Qt 环境实现视频和音频播放
在这个示例中,我们将使用 FFmpeg 进行视频和音频的解码,并使用 Qt 的界面进行显示和控制。为了实现音频和视频的解码以及同步显示,我们需要使用 FFmpeg 的解码库进行视频和音频解码,使用 Qt 的 QLabel 显示解码后的视频帧…...
【人工智能训练师】7 大数据处理与应用
大数据处理与应用(Hive技术)(0/100分) 1.本地开发工具连接Hadoop集群 1.本次环境版本为Hadoop2.7.7,对应eclips插件存放于云主机master:/usr/package277/中。 2.本机映射名为hadoop000,云主机Hadoop/Hive的hosts文件中IP需要修改…...
nginx配置文件介绍及示例
一、nginx配置文件一共有main,http,server,location,upstream,stream,events7个块。 step 1: main 块 作用:main 块是 Nginx 配置文件的顶级块,用于设置一些全局的参数和配置&…...
如何在算家云搭建YOLOv5(物体检测)
一、YOLOv5简介 YOLOv5 模型是一种以实时物体检测闻名的计算机视觉模型,由 Ultralytics 开发,并于 2020 年年中发布。它是 YOLO 系列的升级版,继承了 YOLO 系列以实时物体检测能力而著称的特点。 二、模型搭建流程 1.选择模型实例 在应用…...
现场工程师日记-MSYS2迅速部署PostgreSQL主从备份数据库
文章目录 一、概要二、整体架构流程1. 安装 MSYS2 环境2. 安装postgresql 三、技术名词解释1.MSYS22.postgresql 四、技术细节1. 创建主数据库2.添加从数据库复制权限3. 按需修改参数(1)WAL保留空间(2)监听地址 4. 启动主服务器5.…...
使用Element UI实现一个拖拽图片上传,并可以Ctrl + V获取图片实现文件上传
要在 Element UI 的拖拽上传组件中实现 Ctrl V 图片上传功能,可以通过监听键盘事件来捕获粘贴操作,并将粘贴的图片数据上传到服务器。 版本V1,实现获取粘贴板中的文件 注意,本案例需要再你已经安装了Element UI并在项目中正确配…...
私域流量圈层在新消费时代的机遇与挑战:兼论开源 AI 智能名片、2 + 1 链动模式、S2B2C 商城小程序的应用
摘要:本文剖析了私域流量圈层在新消费时代呈现出的独特温度与信任优势,阐述了从传统销售到新消费转型中用户心理的变化。同时,强调了内容对于私域流量的关键作用,并分析开源 AI 智能名片、2 1 链动模式、S2B2C 商城小程序在私域流…...
vxe-vxe-colgroup后端返回数据 对数据进行处理 动态合并分组表头(v-if控制表格渲染(数据请求完成后渲染))
1.html vxe-colgroup循环合并数据;v-if控制表格渲染(数据请求完成后渲染) <template><vxe-table v-if"isTableReady" :data"tableData"><vxe-colgroup title"基本信息"><template v-for…...
ESLint 使用教程(五):从输入 eslint 命令到最终代码被处理,ESLint 中间究竟做了什么工作
前言 ESLint 是现代 JavaScript 开发中不可或缺的代码质量工具。它能够帮助开发者找到并修复代码中的问题,提升代码的可维护性。但是,你可能会好奇:从我们在终端里输入 eslint 命令到最终代码被处理,ESLint 中间究竟做了什么工作…...
【安全测试】sqlmap工具(sql注入)学习
前言:sqimap是一个开源的渗透测试工具,它可以自动化检测和利用SQL注入缺陷以及接管数据库服务器的过程。它有一个强大的检测引擎,许多适合于终极渗透测试的小众特性和广泛的开关,从数据库指纹、从数据库获 取数据到访问底层文件系…...
YOLOv11融合CVPR[2023]空间和通道重建卷积ScConv模块及相关改进思路|YOLO改进最简教程
YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 YOLOv11改进汇总贴:YOLOv11及自研模型更新汇总 《SCConv: Spatial and Channel Reconstruction Convolution for Feature Redundancy》 一、 模块介绍 论文链接:SCConv: Spatial and Cha…...
C++研发笔记13——C语言程序设计初阶学习笔记11
从今天开始我们开始第三模块《分支语句和循环语句》的学习,在本模块中我们将会涉及到以下9个内容:什么是语句、分支语句——if语言、分支语句——switch语句、循环语句——while循环、循环语句——for循环、循环语句——do while循环、折半查找算法、猜数…...
html5拖放
1、什么是拖放(Drag 和 Drop) 拖放,字面意思就是拖动,放置 在编程里面也是如此,拖放是一种常见的特性,即抓取对象以后拖到另一个位置。 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。…...
无锡模板网站/设计网页的软件
为什么80%的码农都做不了架构师?>>> 日期:2013-4-24 来源:GBin1.com 如果你想了解如何优化前端性能的话,这个工具类型的网站browserdiet绝对可以帮你大忙,它从以下6个主要技术讲述了技术选择和最佳实践&…...
做能支付的网站贵吗/百度优化是什么
1、整流利用二极管单向导电性,可以把方向交替变化的交流电变换成单一方向的脉冲直流电。在电路中,电流只能从二极管的正极流入,负极流出。P区的载流子是空穴,N区的载流子是电子,在P区和N区间形成一定的位垒。外加电压使P区相对N区…...
真人性做爰免费网站/中国十大流量网站
资源 ⭐ ⭐ ⭐ 欢迎点个小小的Star支持!⭐ ⭐ ⭐ 开源不易,希望大家多多支持~ 更多CV和NLP中的transformer模型(BERT、ERNIE、ViT、DeiT、Swin Transformer等)、深度学习资料,请参考:awesome-DeepLearning 更多的预训练语言模型…...
WordPress全屏图/深圳有实力的seo公司
Vue每日签到日历渲染Vue每日签到日历渲染先上图templatescriptstyleVue每日签到日历渲染 先上图 template <template><div class"sign"><div class"header-title"><div>每日签到</div></div><div style"wid…...
wordpress做留言板/网站seo专员
一:load Average1.1:什么是Load?什么是Load Average?Load 就是对计算机干活多少的度量(WikiPedia:the system Load is a measure of the amount of work that a compute system is doing)简单的说是进程队…...
b2c网站优点/免费广告发布平台
2019独角兽企业重金招聘Python工程师标准>>> linux source,export命令 source命令用法: source FileName 作用:在当前bash环境下读取并执行FileName中的命令。 注:该命令通常用命令“.”来替代。 如:source .bash_rc 与…...