git学习笔记-发现问题如何恢复

news2024/11/29 10:39:45
1.概要

git总出各种问题,不清楚原因。所以准备了解的跟深入些。本来的理解是这样的:

下载我就pull

修改完就

commit然后push

怎么会有问题的,结果还总有。

既然问题无法避免,那就提高解决问题和恢复问题的能力。如果问题能够恢复就没有什么可担心的。那么恢复问题的方法就那些呢?有如下两种,一种是回退,回退到某一个正确的版本,一种是对某一个错误的版本重新处理。

二 常用的处理流程

1.reset 回退

1.1 基本步骤

1.1.1 git reset --hard

1.1.2 git push -f 因为你push的版本较低,需要强制提交

1.2 回退的基本原理:git reset --hard命令会将HEAD指针、当前分支指针和索引区都移动到指定的commit ID,从而重置工作区为该版本。

1.3 重置的几种类型

1.3.1 --hard 最危险、但也最简单有效

--hard是最直接,最危险,同时也是使用最频繁的选项。当我们传入 --hard 执行 git reset 时,Commit History会被更新到指定的commit,同时暂存索引和工作目录也会被重置到对应commit的状态。这意味着,指定你工作目录和暂存索引里的内容会丢失。

1.3.2 --mixed 
--mixed 是默认的选项。这种模式下,引用指针会更新。暂存索引被重置到指定commit的状态,任何暂存索引未提交的变更都会被移动到工作目录中。

1.3.3 --soft
我们传递--soft 选项时,引用指针被更新, 暂存索引和工作目录保持不变。

2. revert 重做某一个版本

2.1 基本步骤如下

2.1.1 git revert -n 版本号

2.2.2 git commit -m 版本名

2.2.3 git push

这个步骤多半是会有问题的,因为如果再去掉这个版本的过程中,往往会有合并,如果有合并的话,这里就需要你处理冲突,没有冲突的情况特别扫,除非这个版本中你做的就是添加或者删除文件的事。

基本上可以把这两种情况教主 revert commit 和revert merge commit ,如果有merge是需要处理冲突的。

2.2  两种不桶的从做方法

git revert --abort  合并后如果有冲突,恢复原状,就像什么都没发生过一样

git revert --quit 和并后,保留处理的结果,如果有冲突,需要手动合并。

3.放弃本次修改

3.1 没有提交的情况

3.1.1 未git add

 git checkout – filepathname 

 git checkout .//全部文件

3.1.2 已经git add

git reset HEAD filepathname

git reset HEAD .

3.1.3 已经 git commit

git reset --hard commitid //任意版本

git reset --hard HEAD^ //上一版

3.1.4 对于本地的项目中修改不做任何理会,就需要用到Git pull的强制覆盖

git fetch --all
git reset --hard origin/master
git pull

4 其他命令

4.1 git status 查看工作区文件的状态

4.2 git-ls-files  -    显示有关索引和工作树中文件的信息

     -s --stage在输出中显示暂存内容的模式位,对象名称和阶段编号

4.3 git rm --cached 文件名 删除缓冲区的文件

      git stash 删除.git 文件中index文件夹中的全部文件

4 参考连接

Git回退版本的几种操作_git回滚到指定版本-CSDN博客

Git恢复之前版本的两种方法reset、revert(图文详解)_git reset 回退以前某个版本_chentiebo的博客-CSDN博客

git如何放弃本地修改操作_git放弃本地修改_北漂燕郊杨哥的博客-CSDN博客

git: 放弃所有本地修改_git放弃本地修改-CSDN博客

Git杂谈—— 万字长文详解git reset - 知乎

https://www.cnblogs.com/ahzxy2018/p/14521922.html

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

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

相关文章

lesson2(补充)取地址及const取地址操作符重载

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 以下两个默认成员函数一般不用重新定义 &#xff0c;编译器默认会生成。 #include <iostream> using namespace std;class Date {public:Date():_year(2023),_month(10),_day(28){}Date* operator&(){return this…

RabbitMQ学习01

四大核心概念 生产者 产生数据发送消息的程序是生产者 交换机 交换机是 RabbitMQ 非常重要的一个部件&#xff0c;一方面它接收来自生产者的消息&#xff0c;另一方面它将消息推送到队列中。交换机必须确切知道如何处理它接收到的消息&#xff0c;是将这些消息推送到特定队…

内网穿透工具之NATAPP(一)

使用工具前&#xff0c;有必要了解一下什么是内网穿透吧&#xff01; 内网穿透简单来说就是将内网外网通过natapp隧道打通,让内网的数据让外网可以获取。比如常用的办公室软件等&#xff0c;一般在办公室或家里&#xff0c;通过拨号上网&#xff0c;这样办公软件只有在本地的局…

MySQL 字符集与乱码与collation设置的问题?

开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友…

《HelloGitHub》第 91 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、…

NSS [UUCTF 2022 新生赛]websign

NSS [UUCTF 2022 新生赛]websign 开题就给了提示 ban了F12&#xff0c;鼠标右键&#xff0c;CtrlU 可以用view-source: 别人的思路&#xff1a;ctrls下载页面&#xff0c;notepad打开

Java 工具类 列表动态维护

原本需求&#xff1a;一个二级 list 更新功能。 常规实现&#xff1a;先删除原来的全部数据&#xff0c;再重新插入&#xff0c;这样就很耗时了&#xff0c;所以这里写一个工具类出来。 1. 如果有新增的数据&#xff1a;仅对这些数据新增 2. 如果有删除的数据&#xff1a;仅…

【C++】STL容器——探究List与Vector在使用sort函数排序的区别(14)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一、Sort函数介绍1.Sort函数接口2.Sort…

Vue3.0插槽

用法&#xff1a; 父组件App.vue <template><div><!--将html代码插入到子组件中带默认名称的插槽中--><AChild><!--这段html会插入到AChild组件中<slot></slot>插槽中--><!-- 注意&#xff1a;写在父组件中的html代码只能在父组…

[动态规划] (一) LeetCode 1137.第N个泰波那契数

[动态规划] (一) LeetCode 1137.第N个泰波那契数 文章目录 [动态规划] (一) LeetCode 1137.第N个泰波那契数题目解析解题思路状态表示状态转移方程初始化和填表顺序返回值 代码实现总结空间优化代码实现 总结 1137. 第 N 个泰波那契数 题目解析 解题思路 状态表示 (1) 题目要…

【菜菜研科研小BUG记录】【Latex写作方面1】不定期更新

Latex写作方面&#xff1a; 项目相关背景&#xff1a; &#xff08;1&#xff09;VscodeTexlive环境&#xff0c;bib文件出现报错 &#xff08;2&#xff09;bib报错出现引文重复现象&#xff0c;这个要通过二分法查找重复的引文位置&#xff0c;比较麻烦&#xff0c;比较难找…

linux常用基本命令大全的使用(三)

&#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页石马农青衿 &#x1f304;每日一句&#xff1a;努力一点&#xff0c;优秀一点 &#x1f4d1;前言 本文主要是linux常用基本命令面试篇文章&#xff0c;如果有什么…

【vue3】样式穿透、完整新特性、动态css、css-module

一、样式穿透 vue2里面使用 /deep/ vue3里面使用 :deep() :deep(.el-input__inner){background-color: red; }二、完整新特性 :slotted() //parent.vue <template><div><p>这是父级</p><span></span><A><p class"red"…

线扫相机DALSA--常见问题一:软件安装顺序

1.软件安装顺序 先安装&#xff1a;Sapera_LT_SDK&#xff0c;后安装Xtium-CL MX4驱动。 2.初次安装CamExpert&#xff0c;重启电脑后未找到相机 Settings(搜索协议)配置完毕后&#xff0c;需点击Detect Camera(一键查找相机)按钮&#xff0c;搜索相机。第一次查找相机耗时会略…

电脑有自带的录屏功能吗win7

win7有自带的录屏软件&#xff0c;名字叫“问题步骤记录器”&#xff0c;可以实现将每一步操作截成图片&#xff0c;并自动配以相关文字说明的功能。打开记录器的方法&#xff1a;1、按“WinR”键&#xff0c;打开“运行”窗口&#xff1b;2、在“运行”窗口中&#xff0c;输入…

推荐免费的文本转语音工具TTS-Vue【且开源】

标签&#xff1a; 文本转语音&#xff1b; 免费文本转语音软件&#xff1b; 网上有很多文本转语音的工具&#xff0c;但收费具多。 这里推荐一个免费的文本转语音工具。 不需要注册&#xff0c;下载安装就可以使用。且代码开源。 TTS-Vue 软件主页&#xff1a;https://loker…

【uniapp】uview1.x使用upload上传图片

和2.x不同的是&#xff0c;要用 action 来配置后端上传图片的接口地址&#xff1b; 再来一些配置项的命名有所不同&#xff0c;一般1.x的命名用 -&#xff0c;2.x的命名使用小驼峰&#xff1b; 1.x 的上传会自带删除时的提示框&#xff0c;2.x 没有&#xff1b; 重要的几个配置…

python下拉框选择测试

把下拉选择的值得打印出来&#xff1a; import tkinter as tk def on_select(event): # 当选择下拉框中的一项时&#xff0c;此函数将被调用 selected event.widget.cget("text") # 获取选中的文本 print(f"You selected: {selected}") # 打印选中…

Android JNI/NDK 入门从一到二

1. 前言 最基础的创建JNI接口的操作&#xff0c;可以直接看这篇文章 : 第一个Android JNI工程&#xff0c; 本文会基于掌握创建JNI接口的操作的基础之上&#xff0c;来入门JNI/NDK。 2. 在JNI中打印日志 2.1 添加log模块 记得CMake中有log模块&#xff0c;不然编译不过 ta…

Vue 数据绑定 和 数据渲染

目录 一、Vue快速入门 1.简介 : 2.MVVM : 3.准备工作 : 二、数据绑定 1.实例 : 2.验证 : 三、数据渲染 1.单向渲染 : 2.双向渲染 : 一、Vue快速入门 1.简介 : (1) Vue[/vju/]&#xff0c;是Vue.js的简称&#xff0c;是一个前端框架&#xff0c;常用于构建前端用户…