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>

删除修改

待续

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

常见的6种软件测试用例设计方法

常见的软件测试用例设计方法&#xff0c;个人认为主要是下面这6种&#xff1a; 流程图法&#xff08;也叫场景法&#xff09;等价类划分法边界值分析判定表正交法错误推测法 这6种常见方法中&#xff0c;我分别按照定义、应用场景、使用步骤、案例讲解这4个部分进行讲解。 所…

thinkphp+mysql高校跳蚤二手市场交易系统vue

商品信息是卖家供应用户必不可少的一个部分。在跳蚤市场发展的整个过程中&#xff0c;商品担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类管理系统程序也在不断改进。本课题所设计的普通高校网上跳蚤市场&#xff0c;使用Thinkphp5框架&#xff0c;php语言…

Java日期和时间学习记录2

1、Java的LocalDate类当前时间往未来几天和过去时间几天 import java.time.LocalDate;public class Main {public static void main(String[] args) {// 获取当前日期LocalDate currentDate LocalDate.now();System.out.println("当前日期&#xff1a;" currentDa…

Web09--jQuery基础

1、jQuery概述 1.1 什么是jQuery jQuery是一款优秀的JavaScript的轻量级框架之一&#xff0c;封装了DOM操作、事件绑定、ajax等功能。特别值得一提的是基于jQuery平台的插件非常丰富&#xff0c;大多数前端业务场景都有其封装好的工具可直接使用。 jQuery下载和版本介绍 官…

HTTP动态代理的原理及其对网络性能的影响

HTTP动态代理是一种通过代理服务器来转发HTTP请求和响应数据的网络技术&#xff0c;它可以优化网络性能、提高网络安全性&#xff0c;并解决跨域请求的问题。本文将详细介绍HTTP动态代理的原理及其对网络性能的影响。 一、HTTP动态代理的原理 HTTP动态代理的基本原理是在客户…

什么是交换机端口镜像?

热门IT课程【视频教程】-华为/思科/红帽/oraclehttps://xmws-it.blog.csdn.net/article/details/134398330 镜像可以在不影响交换机/路由器等网络设备报文正常处理流程的情况下&#xff0c;将指定源的报文复制一份到目的端口。目的端口与监控设备直接或间接相连&#xff0c;监控…

山体滑坡监测预警系统-gnss位移监测站

GNSS山体滑坡位移监测站是一种利用全球导航卫星系统&#xff08;GNSS&#xff09;进行山体滑坡位移监测的设备。它通过接收和处理GNSS卫星信号&#xff0c;能够实时监测山体的位移变化&#xff0c;并将数据传输到后端系统进行分析和处理。 GNSS山体滑坡位移监测站具有高精度、…

文件上传技术总结

语言可解析的后缀 &#xff08;前提&#xff1a;在Apache httpd.conf 配置文件中有特殊语言的配置 AddHandler application/x-httpd-php .php 搭配大小写、双重、空格来进行 其中&#xff1a; phtml、pht、php3、php4和php5都是Apache和php认可的php程序的文件后缀 常见的…

云安全包括哪些方面?

随着云计算的快速发展&#xff0c;云安全问题也日益受到关注。云安全不仅涉及到个人数据安全&#xff0c;还涉及到国家安全、社会稳定等方面。因此&#xff0c;了解云安全包括哪些方面对于保护个人隐私和企业数据安全具有重要意义。本文将从多个角度探讨云安全所涉及的方面。 ​…

ASCB1系列一体式智能微型断路器 智慧空开-安科瑞 蒋静

1. 概述 ASCB1系列智能微型断路器(一体式)&#xff08;以下简称智能微型断路器&#xff09;应用于户内建筑物及类似场所的工业、商业、民用建筑及基础设施等领域低压终端配电网络。智能微型断路器对用电线路的关键电气参数&#xff0c;如电压、电流、功率、温度、漏电、能耗等…

Ask for Power Apps 消失了?

Ask for Power Apps 消失了? 背景替换定义一个接收数组的参数1.我们新建一个Text接收参数取名为**Arrlist**.定义一个参数类型是Array 背景 今天才发现&#xff0c;我在flow中想向power apps索要一个参数&#xff0c;但是之前的Ask for Power Apps 这个触发器怎么也找不到了。…

k8s---pod的水平自动伸缩HPA

HPA&#xff1a;Horizontal Pod Autoscaling是pod的水平自动伸缩。是k8s自带的模块 pod占用CPU的比率到达一定的阈值会触发伸缩机制。 replication controller&#xff1a;副本控制器。控制pod的副本数 deployment controller&#xff1a;节点控制器。部署pod hpa控制副本的…

【C++】初步认识基于C的优化

C祖师爷在使用C语言时感觉到了不方便的一些点&#xff0c;于是一步一步改进优化&#xff0c;最后形成了C 本文将盘点一下基于C的语法优化 目录 命名空间&#xff1a;命名空间定义&#xff1a;命名空间使用&#xff1a; C输入&输出&#xff1a;cout&#xff1a;endl&#…

spring中循环依赖问题、Servlet 的过滤器与 Spring 拦截器区别

spring中的循环依赖问题 当A类中关联B&#xff0c;B类中关联A class A {B b; } class B {A a; } 正常java代码中new A时&#xff0c;b为null&#xff1b;new B时&#xff0c;a为null&#xff1b; 但是在spring中&#xff0c;由于对象是由spring容器管理的&#xff0c;当创建…

C语言——联合和枚举

目录 一、联合体 1.1 联合体类型的声明 1.2 联合体的特点 1.3 相同成员的结构体和联合体对比 1.4 联合体大小的计算 1.5 联合的⼀个练习 二、枚举类型 2.1 枚举类型的声明 2.2 枚举类型的优点 2.3 枚举类型的使用 一、联合体 1.1 联合体类型的声明 像结构体⼀样…

【腾讯云服务器】幻兽帕鲁私服服务器部署保姆级教程

在帕鲁的世界&#xff0c;你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活&#xff0c;也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活&#xff0c;也可以为你在工厂工作。你也可以将它们进行售卖&#xff0c;或分解后食用。 想要部署属于自…

C++ STL之stack的使用及模拟实现

文章目录 1. 介绍2. stack的使用3. 栈的模拟实现 1. 介绍 英文解释&#xff1a; 也就是说&#xff1a; stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行元素的插入与提取操作。 stack是作为容器适配器被实现…

8 种网络协议

什么是网络协议&#xff1f; 网络协议就是计算机之间沟通的语言&#xff0c;为了有效地交流&#xff0c;计算机之间需要一种共同的规则或协议&#xff0c;就像我们和老外沟通之前&#xff0c;要先商量好用哪种语言&#xff0c;要么大家都说中文&#xff0c;要么大家都说英语&a…

Elasticsearch分布式一致性原理剖析(三)-Data篇

本文首发于云栖社区(Elasticsearch分布式一致性原理剖析(三)-Data篇-博客-云栖社区-阿里云)&#xff0c;由原作者转载。 前言 “Elasticsearch分布式一致性原理剖析”系列将会对Elasticsearch的分布式一致性原理进行详细的剖析&#xff0c;介绍其实现方式、原理以及其存在的问…

安卓移动设备使用DS file文件管理工具远程访问本地群晖NAS文件

文章目录 1. 群晖安装Cpolar2. 创建TCP公网地址3. 远程访问群晖文件4. 固定TCP公网地址5. 固定TCP地址连接6. 结语 DS file 是一个由群晖公司开发的文件管理应用程序&#xff0c;主要用于浏览、访问和管理存储在群晖NAS&#xff08;网络附加存储&#xff09;中的文件。这个应用…