首页 > 其他分享 >【Git基础篇】Git之撤回修改

【Git基础篇】Git之撤回修改

时间:2023-11-09 18:44:53浏览次数:35  
标签:reset Git -- 撤回 修改 add git commit

有时候写了一堆东西,发现都不需要了,怎么撤回修改呢?
有大致分为以下3种情况:

  • git add之前
  • git add之后,git commit 之前
  • git commit之后

git add之前

//这2个命令都不会撤回新建的文件,新建的文件只能手动删除
git checkout --filename //放弃该文件的修改
git checkout . //放弃所有文件的修改

git add之后,git commit之前

git reset HEAD filename //放弃该文件的commit,回退到git add之前的状态
git reset HEAD // 放弃所有文件的commit,回退到git add之前的状态

git commit之后

//不删除工作区改动的代码,撤销commit,不撤销git add .
git reset --soft HEAD^ //回退到上一个版本
git reset --soft <commit id> //回退到某个版本,可以使用git log查看某个版本的<commit id>
 //不删除工作区改动的代码,撤销commit,撤销git add .
git reset --mixed HEAD^//回退到上一个版本
git reset --mixed <commit id> //回退到某个版本
//删除工作区的代码,撤销commit,撤销git add . 回到上一次commit的状态
git reset --hard HEAD^ //回退到上一个版本
git reset --hard <commit id>  //回退到某个版本

如果提交的代码审核不通过,需要再次修改提交。由于是修改同一个问题,我们可能不希望生成多个 commit 信息,会显得改动分散,看起来改动不完善,所以想要在本地已有的 commit 信息上再次提交改动,而不是在已有的 commit 上再新增一个 commit。

使用 git commit --amend 命令可以达到在现有最新 commit 上再次提交改动的效果。

在本地提交改动后,我们再次修改代码,执行 git add 命令添加改动,如果执行 git commit -m 命令,默认会创建新的空 commit 信息,填写相应的修改说明,提交之后,会新增一个 commit 信息;而执行 git commit --amend 命令会弹出当前最新 commit 的信息,我们可以修改这个信息,也可以不修改,提交之后,用 git log 命令查看,会看到没有增加新的 commit,原先 commit 的 hash 值也没有变,这一次的修改是跟之前的修改一起提交的。

查看 man git-commit 对 --amend 选项的关键说明如下:

--amend
Replace the tip of the current branch by creating a new commit. 即,--amend 选项创建一个新的 commit 来替换当前最新的 commit,如同当前最新的 commit 信息被修改了一样。

 

标签:reset,Git,--,撤回,修改,add,git,commit
From: https://www.cnblogs.com/andy1234/p/17822536.html

相关文章

  • 如何修改网络配置(动态_静态IP)
    接口丝印设备名说明NET1eth1百兆网卡,位于核心板上NET2eth0千兆网卡,位于底板上1.配置静态IP  1.1千兆以太网固定IP方式 方法一  打开/etc/profilevi/etc/profile       在最后加上ifconfigeth0192.168.1.151gateway192.168.1.2up      重启开发......
  • 第一次将Springboot项目上传到GitLab仓库(初始化)
    步骤:1、在GitLab上创建项目仓库(创建空项目)   创建完成如下: 2、在IDEA中新建一个Springboot项目 使用Git版本集成这里说明一下:1、本机计算机已经安装Git2、IDEA已经集成了Git3、这里使用的IDEA是2021版本(2018版本是VCS),IDEA中文......
  • git的操作相关(一)
    git提交:git三大区域:红色工作区(已管->新/修改),绿色暂存区,版本库通过gitadd.工作区->暂存区gitcommit暂存区->版本库命令:gitinitgitstatusgitadd文件名gitadd.#个人信息gitconfig--globaluser.email"[email protected]"gitconfig--globaluser.......
  • GitHub常见操作
    【知识点】GIT将本地的新分支同步到远程仓库中切换到新分支,然后使用gitpushorigin<新的分支名>,这样远程仓库里对应的分支就可以创建了。【知识点】GIT将其他分支的内容合并到主分支上切换到主分支gitcheckout<目标分支>gitmerge<源分支>然后解决冲突;【知识点】......
  • DataGridView绑定数据之后如何修改列值
    privatevoiddataGridView1_CellFormatting(objectsender,DataGridViewCellFormattingEventArgse){if(e==null||e.Value==null||!(senderisDataGridView))return;DataGridViewview=(DataGridView)send......
  • [每周一更]-(第70期):常用的GIT操作命令
    1、增删文件#添加当前目录的所有文件到暂存区$gitadd.#添加指定文件到暂存区$gitadd<file1><file2>...#添加指定目录到暂存区,包括其子目录$gitadd<dir>#删除工作区文件,并且将这次删除放入暂存区$gitrm[file1][file2]...#停止追踪指定文件,但该......
  • git可视化管理工具有哪些?
    在Git中,有许多可视化管理工具可供使用。以下是一些常见的Git可视化管理工具及其功能的详细介绍。GitHubDesktop:GitHubDesktop是由GitHub官方推出的一款易于使用的Git可视化工具。它提供了简单的界面,让用户可以轻松地进行提交、分支管理、拉取和推送等操作。GitH......
  • git和TortoiseGit的使用
    git和TortoiseGit的使用1.如何拷贝库到本地首先使用gitee找到bct仓库在克隆/下载里复制HTTPS链接在桌面点击右键,点击显示更多选项,点击Git克隆,你的可能是英文版的将URL粘贴为HTTPS链接目录你可以自己创建一个新目录,我创建在了D盘下的git文件夹里如果你在D盘该目录......
  • gitlab安装和迁移
    一、安装gitlab1.1、第一步安装或者配置一些必要环境:sudoyuminstallcurlopenssh-serveropenssh-serverpostfixcroniesudoservicepostfixstartsudolokkit-shttp-ssshsudochkconfigpostfixon1.2、下载安装gitlab包centos7地址:https://mirrors.tuna.tsing......
  • Kali Linux 2020.1 修改系统语言
    目录一.背景信息二.操作步骤三.相关总结一.背景信息在安装完kalilinux2020.1时,其操作系统默认语言为英文的,我们操作起来比较麻烦,为了以后操作方便起见,这边将其操作系统默认语言更改为中文。本篇文章将带领各位小伙伴们一起去将操作系统默认语言更改为中文二.操作步骤打开Term......