Git时光机、Git标签、Git分支、GitHub协作

news2024/11/18 1:33:03

Git时光机(切换版本)

1.查看提交历史

HEAD指针指向这次分支的最后一次提交
在这里插入图片描述

版本信息一行显示【git log --pretty=oneline】

在这里插入图片描述

2.引用日志【git reflog】 (只在自己的工作区中存在)

非常重要:当HEAD指针进行切换之后,日志会受到影响(比如切换到之前的版本,那git log不能在查看这之后的提交日志,但git reflog的引用日志会保存信息)
在这里插入图片描述

3.查看当前HEAD指向版本的详情信息【git show】

git show
git show HEAD
git show HEAD+字符
//查看HEAD对应的上一条引用日志的详情信息
git show HEAD^
git show HEAD~
//查看HEAD对应的上上一条引用日志的详情信息
git show HEAD~~
git show HEAD^^
git show HEAD~数字 //查看HEAD对应的上数字条引用日志的详情信息
git show HEAD@{6} //查看对应任意引用日志对应的详情信息
在这里插入图片描述

4.git 生成的hash串,用于版本切换

在这里插入图片描述
通过这个hash串的前位数字用于版本切换(最少前4为,如果项目维护了好多年最少前七位)
在这里插入图片描述

5.切换版本【git reset --hard 版本号】

在这里插入图片描述

详解

git reset --soft 版本:回退到某个版本,保留工作区和暂存区,只回退commit的信息
git reset --mixed(默认) 版本:默认方式,回退到某个版本,只保留工作区,回退commit和add的信息
git resert --hard 版本,将会使用指定的版本覆盖工作区、暂存区(慎用)

【git revert重做一个新的版本】(取代git reset 方式回退版本的弊端)

git reset方式会使HEAD指针往回移动,从而丢失之后的提交信息

重做一个版本
git revert -n a124d9f  //-n 或者--no-commit 表示先重做,一会我自己手动提交              

重做之后(手动提交这次操作的日志 ):
在这里插入图片描述

重做多个版本
git revert -n OLD_SHA-1~..NEW_SHA-1     //区间是左开右闭,则对左边的区间用~修饰

在这里插入图片描述

Git标签

1.创建标签

创建附注标签
给当前版本打标签
git tag -a 标签名 -m "标签信息"

在这里插入图片描述

给之前的版本打标签
git tag -a 标签名 -m "标签信息" 指定版本的hash值

在这里插入图片描述

创建轻量标签

2.查看标签

3.推送标签

4.删除标签

GIt分支

在这里插入图片描述

1.创建分支

//创建并切换到新分支
git checkout -b 新分支名
//相当于
git branch 新分支名  //创建分支
git checkout 分支名  //切换分支

2.删除分支

git checkout -d 分支名

3.切换分支,并创建紧急修复分支

//先切换到主分支
//然后创建并切换到hotfix
git checkout -b hotfix
//对bug进行修复并提交

在这里插入图片描述

  1. 切换到主分支,比较差异
    在这里插入图片描述
  2. 分支合并(master版本只做了平滑移动)
git merge hotfix  //将hotfix分支合并到主分支上

在这里插入图片描述

4.删除hotfix分支
在这里插入图片描述

4.功能开发分支

1.需求完成后对开发分支进行提交
在这里插入图片描述

应该吧feature-1合并到v6而不是合并到v8,则应做的合并是v6\v8\v6合并到一起
在这里插入图片描述
合并功能分支并提交(生成一个新的版本)

git merge 功能分支名 -m "备注信息"

在这里插入图片描述

5.查看本地分支

查看分支

git branch   

查看每个分支最后一次的提交

git branch -v

在这里插入图片描述
查看已经合并的分支

git branch --merged

指定查看哪些分支合并到master

git branch --merged master

查看未合并的分支

git branch --no-merged

指定查看哪些分支未合并到master

git branch --no-merged master

回复被删除的分支(用指定的版本去创建分支)
使用引用日志中的版本号(引用日志只在开发者本地有,别人不可能看到你的引用日志然后去恢复)

git branch 被删除的分支名  hash版本号

在这里插入图片描述
重命名分支

git branch -m 旧分支名  新分支名

7.分支合并

起因:我们从master分支切出一个feature1分支进行开发,此时,你的同事完成了一次hotfix 并合并入了master分支,此时master分支已经领先于你的feature1分支了

git merge master(推荐)
git merge master

在这里插入图片描述
在这里插入图片描述

git rebase master(危险)

在记录里我们发现一些merge信息,但是我们觉得这样污染了我们的commit记录,想要保持一份干净的commit记录怎么办?

先退回到同事hotfix后合并master的步骤
在feature1分支下使用
git rebase master

具体操作:
1.git会把feature1分支里面的每个commit取消
2.把上面的临时操作保存成patch文件,存在.gti/rebase目录下
3.把feature1分支更新到最新的master分支上
4.最后把上面保存的patch文件应用到feature1分支上
在这里插入图片描述

如果两个人同在feature-1上工作,那么git rebase将会是一个危险的指令,你们两个的分支不同,那么你同事在pull远程master的时候,会丢失提交记录
在这里插入图片描述

8.远程分支

查看远程分支

在这里插入图片描述

推送分支
git push 远程仓库名 本地分支名

在这里插入图片描述

git push 远程仓库名 本地分支名:在远程仓库的别名

在这里插入图片描述
在这里插入图片描述

拉取远端分支
git fetch 远程仓库的别名 远程的分支:抓取到本地的命名

在这里插入图片描述

分支的删除
git push 远程库的别名 --delete 远程库中的分支名

在这里插入图片描述

9.Git冲突解决

解决合并冲突

冲突产生的原因:
举例:你在dev分支修改了一个文件,在此期间master分支这个文件也被修改了,master和dev都提交了对这个文件的修改
在这里插入图片描述
//手动对文件的冲突进行更改
在这里插入图片描述
手动删除分支提示信息和想要删除的内容,在加这个文件加入暂存区,即可改变文件的状态解决之前的冲突(一旦暂存这些冲突的文件,git就会给它标记为冲突已解决)
在这里插入图片描述
在这里插入图片描述

解决协作冲突

在上传到远端之前,抓取远程分支,查看远程分支与本地分支的差异
在这里插入图片描述
查看文件差异,没有问题在合并Fetch_HEAD至本地分支(git pull可能冲突报一大堆)
在这里插入图片描述

到71集

GitHub协作

1.添加合作者

在这里插入图片描述

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

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

相关文章

有类似注册表编辑器的vb6源码吗?vba注册表编辑器

第一步是要实现注册表功能的读写,所有数据类型,枚举列出所有子项 第二步,树形控件之类显示,可视化修改,查看 第三步,导入导出注册表 第四步,注册表监控,检测哪些注册表项是新建、删除…

【Flutter】交错动画自定义动画Hero动画

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Flutter学习 🌠 首发时间:2024年5月29日 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾 目…

北京大学第一医院与智源研究院共同发布基于可信执行环境的AI医学影像挑战赛

肾动脉狭窄是导致继发性高血压及肾功能不全的常见原因,而目前针对肾动脉狭窄功能学的评估尚处于探索阶段。数据保护和可信计算环境是目前人工智能技术应用于临床研究的一大瓶颈。北京大学第一医院与北京智源人工智能研究院心脏AI 联合研究中心特发布基于可信执行环境…

wps表格样式【笔记】

wps表格样式【笔记】 前言版权推荐wps表格样式第一种方法第二种方法 最后 前言 2024-5-15 19:25:47 以下内容源自《【笔记】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://jsss-1.blog.csdn.net …

【第五节】C++的多态性与虚函数

目录 前言 一、子类型 二、静态联编和动态联编 三、虚函数 四、纯虚函数和抽象类 五、虚析构函数 六、重载,重定义与重写的异同 前言 面向对象程序设计语言的三大核心特性是封装性、继承性和多态性。封装性奠定了基础,继承性是实现代码重用和扩展…

JWT身份验证相关安全问题

前言:工作中需要基于框架开发一个贴近实际的应用,找到一款比较合适的cms框架,其中正好用到的就是jwt做身份信息验证,也记录一下学习jwt相关的安全问题过程。 JWT介绍 Json web token (JWT), 是为了在网络应用环境间传递声明而执行…

如何遍历并处理不平衡的Python数据集

目录 一、引言 二、不平衡数据集的概念与影响 三、处理不平衡数据集的策略 重采样策略 集成学习方法 代价敏感学习 一分类方法 四、Python工具与库 五、案例分析与代码实现 案例一:使用imbalanced-learn库进行上采样 案例二:使用scikit-learn…

知识付费小程序源码系统 界面支持万能DIY装修,一站式运营 附带完整的源代码以及搭建教程

系统概述 这是一款功能强大的知识付费小程序源码系统,它为用户提供了一个全面的平台,能够满足各种知识付费场景的需求。其界面支持万能 DIY 装修,让用户可以根据自己的品牌形象和风格进行个性化定制,打造出独具特色的小程序界面。…

台灯护眼是真的吗?台灯怎么选对眼睛好?看这一篇就够了

随着现代生活方式的改变,孩子们面临着越来越多的视力挑战。我们一直使用普通台灯,往往忽略了不合适的台灯也会给孩子眼部健康带来危害。普通台灯,尤其是使用白炽灯或荧光灯作为光源的台灯,会发射出紫外线。这些紫外线辐射对孩子的…

HTML新春烟花盛宴

目录 写在前面 烟花盛宴 完整代码 修改文字

内存卡频频提示格式化?数据恢复全攻略

内存卡提示需要格式化 在数字时代,内存卡作为我们存储数据的常用设备,广泛应用于手机、相机、无人机等多种设备中。然而,不少用户在使用过程中会突然遭遇一个令人头疼的问题——内存卡提示需要格式化。这一提示往往伴随着数据的丢失风险&…

端午节趣味互动小游戏的作用是什么

端午节吃粽子,多数行业商家都可借势进行品牌营销,而一场营销效果的优劣,除了好方案外,还需要好的工具/渠道及运营等,围绕粽子元素的互动小游戏是营销互动的主要形式之一。 运用【雨科】平台拥有多款端午节粽子主题互动…

STM32-10-定时器

STM32-01-认识单片机 STM32-02-基础知识 STM32-03-HAL库 STM32-04-时钟树 STM32-05-SYSTEM文件夹 STM32-06-GPIO STM32-07-外部中断 STM32-08-串口 STM32-09-IWDG和WWDG 文章目录 一、STM32 基础定时器1. 基本定时器简介2. 基本定时器框图3. 基本定时器相关寄存器4. 定时器溢出…

单链表,双向链表,循环链表

文章目录 链表单链表双向链表循环链表链表的底层结构链表的实现代码 链表 链表分为单链表,双向链表,循环链表。 单链表 如上图所示,链表是由多个节点组成,节点由数据域与指针域组成,数据域用于存储数据,指…

服务器主机托管一站式托管服务有哪些?

服务器主机托管一站式托管服务,作为现代企业信息化建设的重要一环,为企业提供了一种高效、安全、可靠的服务器运行环境。下面,我们将从多个方面详细介绍这一服务的内容。 一、硬件与基础设施 服务器主机托管服务首先涵盖了服务器硬件和网络基…

windows环境redis未授权利用手法总结

Redis未授权产生原因 1.redis绑定在0.0.0.0:6379默认端口,直接暴露在公网,无防火墙进行来源信任防护。 2.没有设置密码认证,可以免密远程登录redis服务 漏洞危害 1.信息泄露,攻击者可以恶意执行flushall清空数据 2.可以通过ev…

前端Vue自定义个性化导航栏菜单组件的设计与实现

摘要: 随着前端技术的飞速发展和业务场景的日益复杂,组件化开发已成为提升开发效率和降低维护成本的关键手段。本文将以Vue uni-app平台为例,介绍如何通过自定义导航栏菜单组件,实现业务逻辑与界面展示的解耦,以及如何…

25 使用MapReduce编程了解垃圾分类情况

测试数据中1表示可回收垃圾,2表示有害垃圾,4表示湿垃圾,8表示干垃圾。 统计数据中各类型垃圾的数量,分别存储可回收垃圾、有害垃圾、湿垃圾和干垃圾的统计结果。 (存储到4个不同文件中,垃圾信息&#xff0…

高效记录收支明细,预设类别账户,智能统计财务脉络,轻松掌握个人财务!

收支明细管理是每位个人或企业都必须面对的财务任务,财务管理已经成为我们生活中不可或缺的一部分。如何高效记录收支明细,预设类别账户,智能统计财务脉络,轻松掌握个人财务?晨曦记账本为您提供了完美的解决方案&#…

JVM的垃圾回收机制--GC

垃圾回收机制,是java提供的对于内存自动回收的机制。java不需要像C/C那样手动free()释放内存空间,而是在JVM中封装好了。垃圾回收机制,不是java独创的,现在应该是主流编程语言的标配。GC需要消耗额外的系统资源,而且存…