首页 > 其他分享 >git 常规操作 及退回操作

git 常规操作 及退回操作

时间:2023-06-05 16:14:40浏览次数:33  
标签:HEAD git -- 反向 提交 操作 退回

本地文件修改及撤销

# 对存在git仓库的目录中的文件修改, 如果忘记修改了什么可以执行如下命令
git checkout . # 注意, 这个操作不可逆, 如果文件没有备份, 执行之后是无法再恢复的

git add . 及其反向操作

# 添加当前目录下所有变更到暂存区
git add .

# 反向操作, 从暂存区撤回
git reset HEAD .

 

git commit 及其反向操作

# 将暂存区的变更提交到本地仓库中
git commit -m "提交变更"

# 反向操作一, 最常用,将已提交到仓库的变更撤回到暂存区
git reset --soft HEAD~1 # 注意要使用 --soft 参数, 会完整地恢复到提交前的状态

# 反向操作二, 完全撤销已提交的变更, 并不会撤销到暂存区, 而是直接删
git reset --hard HEAD~1 # 慎用!操作不可逆!

 


git pull 及其反向操作


如果远程仓库有变更, 那么拉取的时候会和本地合并, 并生成一次合并记录
有时不想合并, 因为盲目合并可能会导致一次灾难。 反向操作和 git commit的思路相同, 都是针对本地提交的撤销

# 拉取远程代码
git pull

# 撤销自动合并
git reset --soft HEAD~1 # 执行这句可以将拉取代码恢复到暂存区

# 完全撤销自动合并
git reset --hard HEAD~1 # 执行这句则完全恢复到合并以前的状态


git push 及其反向操作


如果已经远程提交成功,撤销远程提交这种操作不是常规操作, 应该尽量避免。
思路是,

先将本地操作回滚到修改之前, 就是和远程仓库一致的那个版本
再次强制提交这个版本, 将服务器版本强制更新

# 提交本地变更到远程仓库
git push

# 1. 回滚本地提交到指定版本, 注意如果加--soft参数, 只能用HEAD~n这种回退形式

git reset --soft HEAD~1
# 2. 提交之前的版本

 

git stash 及其反向操作

# 保存当前变更为临时记录, 恢复当前目录到HEAD所在版本
git stash save

# 从临时记录中恢复
git stash pop

 

标签:HEAD,git,--,反向,提交,操作,退回
From: https://www.cnblogs.com/playforkeeps/p/17458008.html

相关文章

  • python操作Excel,读取表格内容,并根据需求将内容填充到表格指定位置
    在日常工作中经常会遇到需要将“表一,部门信息表”内容逐行填充到“表二,个人基本信息表”的情况。表一:表二:  实现方式如下:#!usr/bin/python#-*-coding:utf-8-*-importpandasaspdimportopenpyxlasopfromopenpyxlimportWorkbookfromopenpyxlimportl......
  • IDEA Maven父子项目操作
    这里以IntelliJIDEA2022.3.1为例子1、新建父项目(1)、创建(2)、Maven相关的配置 点击创建,创建成功,如下图: pom.xml内容如下:<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="h......
  • 安装两个或多个jdk的骚操作
    准备先安装两个jdk,我安装的是jdk8和17下载可去官网,下面这个是老版本下载路径https://www.oracle.com/java/technologies/downloads/archive/我下载后进行了默认安装,可以修改,安装路径不要出现中文jdk17默认没有jre,可以使用下面的命令安装bin\jlink.exe--module-pathjmods......
  • 【JAVA 8】 List 使用Lambda表达式操作对象字段进行升序、降序
    总结使用Lambda表达式轻松对集合进行排序1、需要排序的对象implementsComparable接口,并重写compareTo方法指明默认排序的字段2、使用java8的API轻松实现对List的排序代码中也涉及了一些java8的语法嘻嘻,对新语法我也不熟悉Mainpublicstaticvoidmain(String[]args){......
  • 【GIT】本地创建一个 git 仓库,并推送到远程仓库
    步骤1.在本地创建一个空文件夹如:我建一个map空文件夹2.gitinit在map目录下,将这个文件夹设置为git管理的本地仓库3.gitadd.复制一个文件到map目录下,然后执行gitadd.,这样就将文件存放到了暂存区4.gitcommit-m“firstcommit”将暂存区中存放的文件提交到git本地仓库5.在远端......
  • 【JavaScript】想在JS中使用换行符,我该怎么操作呢?
    使用'\n'换行,而不是'\n'注意前后空格实战demo:$('#text').val('hello'+'\n'+'world');......
  • 记录:一次爬取gitee项目名称和url
    items:classGiteeItem(scrapy.Item):link=scrapy.Field()desc=scrapy.Field()passdb:importemojiimportpymysqlconnect=pymysql.connect(host='localhost',user='root',password='root',db='mindsa',......
  • mybatis-plus扩展extend批量操作(自带批量操作是循环单条插入,效率太低)
    目录添加依赖构建三个配置-推荐放一个包里面让原本继承BaseMapper<实体>的Dao层改为继承EasyBaseMapper<实体>service层已经可以使用批量操作了 添加依赖<!--mybatis-plus组件--><dependency><groupId>com.baomidou</groupId><artifactId>myba......
  • IDEA连接gitLab或github
    找到本地文件夹.ssh/id_rsa.pub文件将里面的内容复制配置到gitlab或github中.......
  • Leetcode 2460. 对数组执行操作
    题目:给你一个下标从0开始的数组nums,数组大小为n,且由非负整数组成。你需要对数组执行n-1步操作,其中第i步操作(从0开始计数)要求对nums中第i个元素执行下述指令:如果nums[i]==nums[i+1],则nums[i]的值变成原来的2倍,nums[i+1]的值变成0。否则,跳过......