Git学习 -- 分支合并、版本修改相关

目录

learn GIT Learn Git Branching

merge和rebase的使用

基础命令

版本回退

工作区和暂存区

管理修改

撤销修改

删除修改


learn GIT Learn Git Branching

这是Gitee上的Git学习教程

Learn Git Branching

Git Rebase

Learn Git Branching

最终的实操

merge和rebase的使用

参考:

http://t.csdnimg.cn/JnWfV

https://www.cnblogs.com/michael-xiang/p/13179837.html

git merge --abort

git log --graph --pretty=oneline --abbrev-commit

基础命令

以下是一些最基础的命令,不需要过多总结

git add . 将工作区中的全部修改添加到暂存区

git commit -m "xxx" 从暂存区提交到版本库 一般推荐一定要带上-m,后跟上本次提交的注释,这样能更好的进行版本说明和版本回退

git push origin branch 推送到远程仓库的某个分支

git status 查看仓库当前状态 这个命令可以帮助我们时刻掌握仓库当前的状态,比如有哪几个文件被修改了,有哪些文件待提交等等

版本回退

首先引入一个HEAD指针的概念

一般HEAD指针随着你当前分支的切换进行更新(分支切换时,HEAD指针也将指向至当前分支)

//图来自廖雪峰的官方网站版本回退 - 廖雪峰的官方网站

使用git reset命令进行版本回退

git reset --hard HEAD^

有几个^ 就表示回退到几个版本前,但是如果需要回退的版本号较多,就使用 “~n“的方式进行回退,n代表着回退的版本数量

比如~1 等价于HEAD^

当然,也可以通过git log获取到全部的版本号之后,选择退回到特定的版本号之前

git log 可以获得版本号,获得版本号之后,你可以只输入版本号的前几位来确定某一个版本号

如果回退之后,后悔进行回退了,需要找到未来(相对于当前位置)的某个版本号进行回归怎么办?

使用 git reflog来寻找你执行过的每一次命令

根据每行第一列的commit id来进行reset操作就可以了

补充:使用git diff 查看两个版本间发生的变化

注: 使用--pretty==oneline参数来简化git log的输出信息(将不再包含作者和日期信息)

工作区和暂存区

工作区就是指你当前电脑本地中正在操作的文件,一旦你操作一个文件,他就算是进入了工作区,需要进行后续的提交操作

版本库包含暂存区(add之后文件进入的区域)和分支(第一个分支是自动创建的master)

可以自己touch一个文件后,进行add和commit的操作,在过程中使用git status 获得文件提交过程中的提示信息,对这一过程和工作区、暂存区的概念得到更好的认知

管理修改

git提交的是修改,而不是文件

或者说,提交的是你已经放到暂存区中的文件,如果你首先add,提交了你的第一次修改,随后你再尝试去修改,此时发生了第二次修改,但是你这次修改只存在于工作区中,进行的提交只会提交存在于暂存区中的第一次修改。

可能有些拗口,但这是精简版的说明了,多读几遍应该能够理解

撤销修改

如果我们不小心增加了错误的修改怎么办呢?如何撤销?

文件仍在工作区中,还未添加到暂存区时

使用git checkout -- <file>撤销对文件的修改

(git checkout -- 中的 --很重要)

文件已经提交到暂存区中了

使用git reset HEAD <file>将暂存区的修改返回到工作区

此时就可以继续使用提到过的checkout命令将工作区的修改也撤销

如果已经提交到了本地版本库,此时仍然有挽回的余地,使用版本回退git reset <指定的版本>可以在你自己的版本库中进行回退

一旦提交到远程仓库,撤销修改的代价将会非常大

这时需要使用git revert

git revert [commitId] 对commitId执行反向操作,恢复到commitId的上一个commitId的代码

补充:git restore (针对暂存区和工作区)

当一个文件刚被你修改后放入暂存区时(也就是add过了)

此时使用git status

可以发现,有一行字提示我们:使用git restore --staged <file> 来进行撤销

或者是希望撤销工作区中的修改时,直接使用git restore <file>

删除修改

待续

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

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

相关文章

杰理方案——WIFI连接物联网配置阿里云操作步骤

demo——DevKitBoard 注意&#xff1a;最好用这个Demo,其它Demo可能会有莫名其妙的错误问题。 wifi配置 需要在app_config.h文件中定义USE_DEMO_WIFI_TEST&#xff0c;工程会在wifi_demo_task.c文件中自动启动wifi相关的任务&#xff0c; 我们将工程配置为连接外部网络STA模式…

编写一个JavaScript函数,实时显示当前时间格式为—年—月—日 时:分:秒

在JavaScript中&#xff0c;你可以使用Date对象和它的方法来获取和格式化当前时间。下面是一个函数&#xff0c;它会实时更新并显示当前时间&#xff0c;格式为"年-月-日 时:分:秒"。 javascript function displayCurrentTime() { // 获取当前时间 var …

基于YOLOv8的摔倒行为检测系统(Python源码+Pyqt6界面+数据集)

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文主要内容:通过实战基于YOLOv8的摔倒行为检测算法&#xff0c;从数据集制作到模型训练&#xff0c;最后设计成为检测UI界面 人体行为分析AI算法&#xff0c;是一种利用人工智能技术对人体行为进行检测、跟踪和分析的方法。通过计算…

研发无人水下全智能化炸弹系统

研发无人水下全智能化炸弹系统具有重要的意义和价值。下面是一些原因&#xff1a; 提高安全性&#xff1a;无人水下全智能化炸弹系统可以代替人类执行危险和高风险任务&#xff0c;从而减少人员伤亡和事故发生的可能性。这些系统可以在不利环境下执行任务&#xff0c;如深海潜水…

学会使用ubuntu——ubuntu22.04使用Google、git的魔法操作

ubuntu22.04使用Google、git的魔法操作 转战知乎写作 https://zhuanlan.zhihu.com/p/679332988

前端开发中的那些规范

开发中的那些规范 俗话说&#xff1a;无规矩不成方圆。生活如此、软件开发也如此。 来聊一聊开发中有哪些地方需要规范。 为什么需要规范 现在开发一个应用基本上都是多人协作&#xff0c;一旦涉及到多人&#xff0c;必然不同的开发者的开发习惯、编码方式都是有所不同的&…

QT发送request请求

时间记录&#xff1a;2024/1/23 一、使用步骤 &#xff08;1&#xff09;pro文件中添加network模块 &#xff08;2&#xff09;创建QNetworkAccessManager网络管理类对象 &#xff08;3&#xff09;创建QNetworkRequest网络请求对象&#xff0c;使用setUrl方法设置请求url&am…

C#设计模式教程(20):观察者模式

观察者模式的定义 观察者模式(Observer Pattern)是一种常用的设计模式,允许一个对象(称为“观察者”)订阅另一个对象(称为“主题”或“可观察对象”)的状态变化,并在状态改变时得到通知。这种模式在实现事件处理系统、数据更新通知等场景中非常有用。 大白话理解观察…

电阻(一):压敏电阻

1、定义 压敏电阻&#xff08;Varistor | Voltage Dependent Resistor&#xff09;&#xff1a;是一种具有非线性伏安特性的电阻器件&#xff0c;其电阻值会随外部电压而改变&#xff0c;主要用于在电路承受过压时进行电压钳位&#xff0c;吸收多余的电流以保护敏感器件。 2、…

【江科大】STM32:USART串口(理论部分)上

串口 全双工&#xff1a;可以进行同步通信 单端信号&#xff1a;信号线传输的就是单端信号。&#xff08;也就是与地线&#xff08;GND&#xff09;的电势差&#xff09; 缺点&#xff1a;防干扰能力差 原因&#xff1a;当信号从A点传输到B点&#xff0c;理想条件是A&#xff0…

4核8g云服务器配置mc我的世界支持多少玩家在线?

mc我的世界服务器4核8g够多少人&#xff1f;80人&#xff0c;4核8G服务器最多支持80人同时在线。关于我的世界服务器的CPU和内存有用户测试过&#xff0c;阿腾云atengyun.com认为最多可以支持80人同时在线。如果运行的云服务器配置较低&#xff0c;启动游戏后可以在左下角看到配…

Vue nextTick使用场景及实现原理

nextTick是前端面试中vue框架中必考的部分&#xff0c;一定要掌握。它主要是处理我们再变更完数据以后&#xff0c;无法立刻拿到最新的DOM节点对象的问题。我们可以这样理解&#xff1a;vue执行完渲染后会执行this.nextTick()里面的callback函数。 使用场景 我们来看一个实际的…

对齐大型语言模型与人类偏好:通过表示工程实现

1、写作动机&#xff1a; 强化学习表现出相当复杂度、对超参数的敏感性、在训练过程中的不稳定性&#xff0c;并需要在奖励模型和价值网络中进行额外的训练&#xff0c;导致了较大的计算成本。为了解决RL方法带来的上述挑战&#xff0c;提出了几种计算上轻量级的替代方案&…

el-select选项过多导致页面卡顿,路由跳转卡顿

问题&#xff1a;el-select数据量太大&#xff0c;导致渲染过慢&#xff0c;或造成页面卡顿甚至于卡死 卡顿原因&#xff1a;DOM中数据过多&#xff0c;超过内存限制 解决方法&#xff1a; 1.使用Virtualized Select 虚拟化选择器&#xff0c;页面就不卡了 2.el-select做分…

K8S四层代理Service-02

Service的四种类型使用 ClusterIP使用示例Pod里使用service的服务名访问应用 NodePort使用示例 ExternalName使用示例 LoadBalancer K8S支持以下4种Service类型&#xff1a;ClusterIP、NodePort、ExternalName、LoadBalancer 以下是使用4种类型进行Service创建&#xff0c;应对…

Datawhale 强化学习笔记(四)结合策略梯度和价值函数的 Actor-Critic 算法

策略梯度算法的缺点 采样效率低。由于使用的是蒙特卡洛估计&#xff0c;与基于价值算法的时序差分估计相比其采样速度必然是要慢很多的&#xff0c;这个问题在前面相关章节中也提到过。高方差。虽然跟基于价值的算法一样都会导致高方差&#xff0c;但是策略梯度算法通常是在估…

卡梅德-噬菌体肽库构建的流程与技术难度简述

噬菌体肽库构建技术是一种高效的蛋白质展示方法&#xff0c;广泛应用于抗体药物发现、抗原设计与疫苗研发等领域。本文将详细介绍噬菌体肽库的构建流程及其技术难度。 一、噬菌体肽库构建流程 基因合成与改造&#xff1a;首先&#xff0c;通过基因合成技术&#xff0c;将目标多…

使用k8s 配置 RollingUpdate 滚动更新实现应用的灰度发布

方案实现方式&#xff1a; RollingUpdate 滚动更新机制 当某个服务需要升级时&#xff0c;传统的做法是&#xff0c;先将要更新的服务下线&#xff0c;业务停止后再更新版本和配置&#xff0c;然后重新启动服务。 如果业务集群规模较大时&#xff0c;这个工作就变成了一个挑战…

HEGERLS智能物流机器人|场景为王 以存取为技术核心布局的仓储集群

随着物流需求的多样化、复杂化&#xff0c;四向穿梭车技术经过几年的蓬勃发展&#xff0c;正在各领域迎来愈加广泛的应用。河北沃克作为该领域的代表&#xff0c;凭借庞大的产品群、功能强大的软件系统以及资源丰富的生态合作伙伴体系实现了快速的发展。其中&#xff0c;海格里…

CSS实现三种常用的三角形效果

目录 前言 一、实现普通三角形效果 二、实现三角形的气泡框效果 三、实现空心三角形效果 四、总结 往期回顾 前言 CSS 提供了出色的方法可以实现基本的形状。本文就来看看如何使用这些方法来实现项目中常用的三种三角形效果。 一、实现普通三角形效果 实现步骤 &#…