git commit三种回退的方式

这篇具有很好参考价值的文章主要介绍了git commit三种回退的方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

git commit 回退

弄清楚三个区

工作区(working tree): 本地编辑器
暂存区(index):git add操作后进入暂存区,可用git status查看
本地仓库(repository):git commit 后进入本地仓库

修改commit

当我们第一次提交后,发现还有修改没有提交,通常我们想的是在add/commit一次,这样存在的问题呢就是会有一些扰乱我们的commit信息。比如我们第二次commit提交信息可能是“删除上次提交的debugger”
其实我们两次提交内容的目的都是同一个,比如修改bug,第一次提交时忘了删除我们调试时留下的debugger。然后就删除提交第二次,第二次的提示信息就很不友好。我们怎么来将两个commit合为一个呢?

git commit --amend // 把上一次的commit记录去除,修改commit信息。

git commit --amend

第一次提交,查看提交日志已经存在:
git回退commit,工作经验分享,git,github
第二次add,然后提交修改
git回退commit,工作经验分享,git,github

进入编辑界面,修改我们的提交信息
git回退commit,工作经验分享,git,github
修改后

git回退commit,工作经验分享,git,github

查看提交日志,只存在一次提交记录,信息也是显示的我们第二次提交的信息。

git回退commit,工作经验分享,git,github

回退commit

git reset --soft // 回退到指定commit,该commit之后的提交内容,保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区
git reset --hard // 回退到指定commit,该commit之后的提交内容,工作区和暂存区的内容都被抹掉

git resetgit reset --mixed // 不带参数,或带参数–mixed(默认参数),与git reset --soft 不同,它将会把差异放到工作区
git reset --soft

首先我们先提交两次记录,这是第一次:
git回退commit,工作经验分享,git,github

第二次:
git回退commit,工作经验分享,git,github

查看提交HEAD
git回退commit,工作经验分享,git,github

此时工作区没有任何修改未提交
git回退commit,工作经验分享,git,github

git reset --soft HEAD^之后, 工作区有修改未提交,最后一次提交的内容暂存区保存了下来
git回退commit,工作经验分享,git,github

提交记录以及不在,说明仓库中没有了这次提交
git回退commit,工作经验分享,git,github

我们git status 发现上次提交的内容在暂存区,想要再次提交我们再继续commit就行

git回退commit,工作经验分享,git,github

git reset --hard
首先我们提交,查看提交记录
git回退commit,工作经验分享,git,github

git reset --hard 1134cb6回退到版本1134cb6(git reflog 可查询HEAD)
git回退commit,工作经验分享,git,github

没有了txt文件,内容被彻底的删除了。
git回退commit,工作经验分享,git,github

也没有了提交记录,工作区也没有代码。这时候工作区,暂存区和仓库都是一样的回退到了指定commit

git回退commit,工作经验分享,git,github

git reset HEAD || git reset --mixed
添加commit
git回退commit,工作经验分享,git,github

回退,查看状态,前一次提交目前在工作区
git回退commit,工作经验分享,git,github

小结

git commit --amend 好用,减少提交无用信息,可常用。
git reset --soft HEAD 回退,差异存在暂存区,也好用,不轻易删除代码。
git reset --hard HEAD 回退删除, 慎用,一不小心删除代码还不可逆。
git reset HEAD || git reset --mixed HEAD 回退,改变的差异在工作区。文章来源地址https://www.toymoban.com/news/detail-562919.html

到了这里,关于git commit三种回退的方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git回退已经提交commit的(还未推送push的)代码及撤回代码回退

    1.Git回退已经提交的代码 原文链接(原文写的是已经推送push的代码) http://t.csdn.cn/CDjgq 已经开始难过了,我提交后没有推送就按照上文提示进行了代码回退,结果idea里面没得我最后一次提交的代码。。。然后我开始了第二轮操作, 撤回 代码回退 2.撤回代码回退 1)首先输入

    2024年02月13日
    浏览(63)
  • git如何回退前两个已经push的commit

    要回退前两个已经 push 的 commit,可以使用 git revert 或者 git reset 命令。下面我将介绍两种方法的步骤: 方法一:使用 git revert 执行 git log 命令来查看你想要回退的 commit 的哈希值。找到需要回退的最新两个 commit 的哈希值。 执行 git revert 命令,将 和 替换为你要回退的两个

    2024年02月07日
    浏览(50)
  • git 切换并保存某个branch 的 某一个commit / 直接回退到某个 commit

    参考: git 拉取某个分支的某一个commit的代码 git获取某次历史commit的代码 展示如下: (dev 是分支名 , 2342dsfsdfs2 是提交过的 commit 的id) 当前没有dev分支的时候使用的 如果当前已经处于dev分支,可以直接拉取 git checkout切换到指定commit git 本地回退至某个版本

    2024年02月04日
    浏览(59)
  • Git回退版本的方式

    关键命令: git reset 回退原理: git reset --hard 命令会将HEAD指针、当前分支指针和索引区都移动到指定的commit ID,从而重置工作区为该版本。 步骤一:查看版本号 。git log查找历史或使用git reflog命令查找合并操作的commit ID,找到需要回滚的目标版本号 步骤二:使用 git reset --

    2024年02月04日
    浏览(36)
  • git 常用基本命令, reset 回退撤销commit,解决gitignore无效,忽略记录或未记录远程仓库的文件,删除远程仓库文件

    https://blog.csdn.net/a704397849/article/details/135220091 idea 中 rest 撤销commit过程如下: Git - Rest Head… 在To Commit中的HEAD后面加上^,点击Reset即可撤回最近一次的尚未push的commit Reset Type 有三种: Mixed(默认方式),保留本地源码,回退 commit 和 index 信息,最常用的方式 Soft 回退到某个版

    2024年02月02日
    浏览(63)
  • git commit 撤销的三种方法

    一般在提交代码的时候,顺序是这样的 git add 可以看做是 “准备提交” , git commit 可以看做是 “执行提交” ; 撤销 commit 那么在执行完 commit 之后,想撤回 commit,怎么办? HEAD^ 意思是上一个版本,也可以写成 HEAD~1 如果进行了 2 次 commit ,都想撤回,可以使用 HEAD~2 1. 撤销

    2024年02月04日
    浏览(44)
  • 【经验】Git|如何删除错误的commit?(存在大文件无法push的commit、不需要的commit等情况、清除所有commit的情况)

    如果你在本地多次提交了commit,但是其中有一个commit交错了、或者无法推送, 就像下面这张图这样: 你可以安装以下步骤操作。 通过 git log 想清楚自己需要切换到哪一个commit状态,查看commit id: 将仓库的状态恢复到 能够正常提交的状态/需要删除的状态的上一个commit状态

    2024年02月03日
    浏览(68)
  • 工作中如何打造优雅的Git工作流和Commit规范!

    前言 🤓Git大家都非常熟悉了,就不做过多介绍,但是如何用好Git、如何进行合理的分支开发、Merge你是否有一个规范流程呢?💤 不论是一个团队一起开发一个项目,还是自己独立开发一个项目,都少不了要和Git打交道,这些都是作为开发者必须要掌握的。每个团队也许有自

    2024年01月21日
    浏览(46)
  • 项目git commit时卡主不良代码:husky让Git检查代码规范化工作

    看完 《前端规范之Git工作流规范(Husky + Commitlint + Lint-staged) 前端规范之Git工作流规范(Husky + Commitlint + Lint-staged) - Yellow_ice - 博客园》,再次修改本文 团队人一多,提交一多,还是要对备注加以区分,好快速找到变更点。这时候就需要对每次提交,需要输入message,对提交

    2024年02月03日
    浏览(111)
  • 【工作记录】mysql中实现分组统计的三种方式

    前言 实际工作中对范围分组统计的需求还是相对普遍的,本文记录下在mysql中通过函数和sql完成分组统计的实现过程。 数据及期望 比如我们获取到了豆瓣电影top250,现在想知道各个分数段的电影总数. 表数据如下: 期望结果: 实现方案 主要思路是根据score的范围设置别名,然

    2024年02月13日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包