git回退未commit、回退已commit、回退已push、合并某一次commit到另一个分支

news2024/9/26 5:21:59

文章目录

  • 1、git回退未commit
  • 2、git回退已commit
  • 3、git回退已push的代码
    • 3.1 直接丢弃某一次的push
    • 3.2 撤销push后,不丢弃改动,重新修改后要再次push
  • 4、合并某一次commit到另一个分支

整理几个工作上遇到的git问题。

1、git回退未commit

git回退未commit,即 在一个分支修改代码后,还没commit提交,不想要这些修改了,想回到刚开始的样子

  • 查看修改的文件
git status
  • 放弃单个文件的修改
// 注意:
// 1、--和文件路径之间是有个空格的
// 2、后面跟git status返回的文件的全路径
git checkout -- 你的文件path/your-file.java
  • 也可直接放弃所有修改
git checkout .

= = = = = = = = = = = 完成分割线 = = = = = = = = = = = =

两点补充说明:

  • 1) git checkout -b 分支名 是切换分支,注意-b

  • 2) git checkout -- main.go: 这个命令的作用是撤销对文件 main.go 的修改,它会丢弃工作区中 main.go 的更改,常用于恢复意外的修改或者放弃不需要的更改

  • 3) git checkoout --main.go时,可能会有以下弹窗:内存变更Memory Changes即你新加的那些变更,既然不要这些改动了,那就选Load File System Change即可,也可先Show Difference确认下不同
    在这里插入图片描述

2、git回退已commit

git回退已commit,即 在一个分支修改代码并commit到了本地仓库,但没push到远程仓库,想回到刚开始的样子。回退所有已commit的文件:

图形界面操作

打开git log,直接Drop Commit,注意,这样不仅会让这次commit从待push列表移除,且这次commit里对代码的修改也会回退到原样,即这次commit的修改会丢失

在这里插入图片描述

那这样,也可以解决上面的场景(git回退未commit),即先commit,再drop commit

指令操作

用指令的话:

  • 先看下当前分支的head位置,发现就是我刚commit的那次
git log --pretty=oneline --all --graph --abbrev-commit

在这里插入图片描述

  • 回退,丢弃一次提交,HEAD~n,其中 n 是你要回退的提交数。如,HEAD~2 表示回退两个提交,注意–hard相当于上面的Drop Commit,会放弃commit并丢失这次commit对代码的修改
git reset --hard HEAD~1

在这里插入图片描述

  • 如果只是想放弃commit,但这次commit对代码的修改需要保留,可以使用--soft
git reset --soft HEAD~1

回退某一个已commit的文件

如果只是放弃已commit文件里的某一个文件,可以先放弃提交:

git reset --soft HEAD~1

然后重新提交需要的文件,试了半天git checkout,好像不好使。

3、git回退已push的代码

图形界面操作

最近一次的push我不要了,那就选择上一次push的位置,右键Reset Current Branch to Here(注意这里改的是本地仓库,远程仓库此时还是那个样子

在这里插入图片描述

此时,上一次push的代码就在你的待commit列表里:

在这里插入图片描述

要改的话,就改,直接不要了的话,就git checkout --filename

在这里插入图片描述

强推到远程:

git push --force origin <branch-name>

// 或者
git push -f origin <branch-name>

之所以强推到远程,是因为刚才reset,改变的是本地仓库,远程还是没变,因此需要强推到远程,直接git push也不行,因为此时远程仓库比本地版本超前,会报错non-fast-forward

指令操作

3.1 直接丢弃某一次的push

  • 用commit编号或者HEAD~n (注意,–hard是这次commit或者push的修改直接丢弃,–soft则是保留修改),如果是直接不要这次push的改动了,就用–hard,如果是想撤回这次push的改动后重新修改,就用–soft
git reset --hard <commit-hash>
git reset --hard HEAD~1

强推到远程:

git push --force origin <branch-name>

// 或者
git push -f origin <branch-name>

3.2 撤销push后,不丢弃改动,重新修改后要再次push

git reset --soft HEAD~1

在这里插入图片描述

此时最好就别强推了,直接push,会有冲突,合并下冲突即可。

4、合并某一次commit到另一个分支

只把A分支的一次提交,合并到B分支:

  • 切换到A分支,找到要合过去的那次提交的哈希值,比如abcdef1234567890
git log
// q退出
  • 切换到B分支,将那一次commit合过来
git cherry-pick abcdef1234567890
  • 处理冲突

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

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

相关文章

【C++】STL-哈希表封装unorder_set和unordered_map

目录 1、实现哈希表的泛型 2、unordered_set和unordered_map的插入 3、迭代器 3.1 operator 3.2 const迭代器 4、find 5、unordered_map的operator[] 6、对于无法取模的类型 7、介绍unordered_set的几个函数 7.1 bucket_count 7.2 bucket_size 7.3 bucket 7.4 rese…

Gcc/G++编译C/C++文件(主要以C++语言为主,C语言就做阐述 用法一样 就是将G++换成GCC)

首先&#xff0c;我们在Linux中创建一个helloc.cc文件(C文件) vim helloc.cc 直接用g裸编译 g helloc.cc 生成的a.out就是二进制可执行文件 如果要产生 自定义可执行文件 就需要下面的编译步骤 繁琐操作 g -c helloc.cc 会生成目标文件 g -o hello helloc.o 此时hell…

仿SOUL社交友附近人婚恋约仿陌陌APP系统源码

专门为单身男女打造的恋爱交友社区&#xff0c;就是一个由千千万万单身男女组建的大家庭。他们来自全国各地&#xff0c;或许有着不同的人生经历&#xff0c;却有着共同的对恋爱交友的渴望。他们可以通过文字、语音、视频聊天的方式&#xff0c;和镜头前的彼此诉说自己工作中发…

95页PPT丨IBM-IT应用规划

一、IBM针对IT应用规划项目核心内容IBM在IT应用规划项目中的核心内容&#xff0c;旨在帮助企业实现数字化转型&#xff0c;优化IT资源配置&#xff0c;并确保IT战略与业务目标的一致性。以下是IBM IT应用规划项目的详细核心内容&#xff1a; 资料下载方式&#xff0c;请看每张…

LabVIEW与CANopen实现自动化生产线的设备控制与数据采集

在某工厂的自动化生产线上&#xff0c;多个设备通过CANopen网络进行通信和控制。这些设备包括传感器、执行器和PLC&#xff0c;它们共同负责监测和控制生产过程中的关键参数&#xff0c;如温度、压力、速度等。为了实现对整个生产线的集中监控和管理&#xff0c;工厂决定使用La…

深入理解同城代驾系统源码:技术架构与实现细节

今天&#xff0c;小编将深入讲解同城代驾系统的技术架构与实现细节。 一、同城代驾系统的基本功能模块 一个完整的同城代驾系统通常包括以下核心功能模块&#xff1a; 1.用户端应用 2.司机端应用 3.后台管理系统 4.消息推送与通知 二、技术架构设计 同城代驾系统的技术架…

程序设计基础(c语言)_补充_1

1、编程应用双层循环输出九九乘法表 #include <stdio.h> #include <stdlib.h> int main() {int i,j;for(i1;i<9;i){for(j1;j<i;j)if(ji)printf("%d*%d%d",j,i,j*i);elseprintf("%d*%d%-2d ",j,i,j*i);printf("\n");}return 0…

DNS处理模块 dnspython

DNS处理模块 dnspython 标题介绍安装dnspython 模块常用方法介绍实践&#xff1a;DNS域名轮询业务监控 标题介绍 Dnspython 是 Python 的 DNS 工具包。它可用于查询、区域传输、动态更新、名称服务器测试和许多其他事情。 dnspython 模块提供了大量的 DNS 处理方法&#xff0c…

Flink 实时数仓(五)【DWD 层搭建(三)交易域事实表】

前言 今天开始交易域事实表的创建&#xff0c;上一节流量域中的表&#xff08;其实就是一个 kafka 主题&#xff09;数据来自于日志&#xff0c;而交易域的数据来自于业务系统&#xff0c;业务表之间是有关联性的。 我们之前在离线数仓中&#xff08;声明粒度&#xff08;最细粒…

oracle数据库监控数据库中某个表是否正常生成

事情经过&#xff1a; 公司某业务系统每月25日0点会自动生成下个月的表&#xff0c;表名字是tabname_202407的格式。由于7月25日0点做系统保养的时候重启了应用系统服务&#xff0c;导致8月份的表没有生成。最终操作业务影响&#xff0c;为此决定对这个表进行监控&#xff0c;…

Depth Anything——强大的单目深度估计模型

概述 单目深度估计&#xff08;Monocular Depth Estimation, MDE&#xff09;是一项在计算机视觉领域中非常重要的技术&#xff0c;它旨在从单张图像中恢复出场景的三维结构。这项技术对于机器人导航、自动驾驶汽车、增强现实&#xff08;AR&#xff09;和虚拟现实&#xff08…

DVWA(SQL注入)medium、high

medium &#xff08;1&#xff09;判断注入是字符型还是数值型 数值型&#xff0c;获得了用户信息。 id 1 or 11 &#xff08;2&#xff09;查询字段数 为3时报错&#xff0c;代表字段数为2。 1 order by 3 &#xff08;3&#xff09;显示字段顺序 1 union select 1,2 &…

大数据与人工智能:数据隐私与安全的挑战_ai 和 数据隐私

前言 1.背景介绍 随着人工智能(AI)和大数据技术的不断发展&#xff0c;我们的生活、工作和社会都在不断变化。这些技术为我们提供了许多好处&#xff0c;但同时也带来了一系列挑战&#xff0c;其中数据隐私和安全是最为关键的之一。数据隐私和安全问题的出现&#xff0c;主要…

Redis7.x安装系列教程(一)单机部署

1、前言&环境准备说明 本文及接下来3篇将详细介绍在linux环境Redis7.X源码安装系列教程&#xff0c;从最简单的单机部署开始&#xff0c;逐步升级主从部署、哨兵部署和集群部署。 环境准备&#xff1a;如果有条件的用云服务器&#xff0c;如果没有的使用VMware 虚拟机&am…

【精通Redis】Redis事务

文章目录 前言一、标准事务1.1 标准事务的特性1.2 标准事务的生命周期1.3 事务的作用 二、Redis事务2.1 Redis事务的特性2.2 Redis事务与普通事务的区别 三、Redis事务常用命令总结 前言 我们在使用Redis的时候&#xff0c;有时为了处理多个结构&#xff0c;需要向Redis中一次…

Python数据结构实战:列表、字典与集合的高效使用

前言 在编程中&#xff0c;选择合适的数据结构对于提高程序效率至关重要。本文将介绍Python中最常用的数据结构——列表&#xff08;list&#xff09;、字典&#xff08;dict&#xff09;和集合&#xff08;set&#xff09;&#xff0c;并探讨它们的内部实现以及如何高效地使用…

The operation was rejected by your operating system. code CERT_HAS_EXPIRED报错解决

各种报错&#xff0c;试了清缓存&#xff0c;使用管理员权限打开命令行工具&#xff0c;更新npm&#xff0c;都不好使 最终解决&#xff1a;删除 c:/user/admin/ .npmrc

我的最爱之《达明一派》

达明一派&#xff0c;是我最爱。刘以达(Tats)与黄耀明(Anthony Wong)在1980年代的香港组成的二人流行音乐组合&#xff0c;在90年代&#xff0c;网络还没兴起时&#xff0c;那是卡带流行的岁月。90年代&#xff0c;我与好友&#xff0c;同考大学&#xff0c;他留在了南充读读书…

世媒讯带您了解什么是媒体邀约

什么是媒体邀约&#xff1f;其实媒体邀约是一种公关策略&#xff0c;旨在通过邀请媒体记者和编辑参加特定的活动、发布会或其他重要事件&#xff0c;以确保这些活动能够得到广泛的报道和关注。通过这种方式&#xff0c;企业和组织希望能够传达重要信息&#xff0c;提高品牌知名…

网络监控软件的作用是什么|企业用的六款网络监控软件

网络监控软件是干什么的呢&#xff1f;它是用来管理网络安全的&#xff0c;尤其是对于企业而言至关重要&#xff0c;下面我为你推荐六款知名的网络监控软件。 1. 安企神 功能特点&#xff1a; 全面监控&#xff1a;提供电脑屏幕监控、文件操作监控、聊天记录监控等功能&#…