前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >git 中的回退

git 中的回退

作者头像
jgrass
发布于 2024-12-25 08:01:53
发布于 2024-12-25 08:01:53
1570
举报
文章被收录于专栏:蔻丁杂记蔻丁杂记

使用git的时候,犯错误了怎么办。以下是一些常规的回退措施。

本文内容稍显陈旧,可以参考这篇:

深入理解Git - 一切皆commit - J.晒太阳的猫 - 博客园

首先,需要了解上一篇笔记里提到的一些基本概念。

先上图

git reset

推荐一篇博客:git reset简介

git reset filename

撤销文件的暂存 git reset filename

撤销暂存区所有的文件暂存 git reset .

下文中的 commitId 指任何可以指代一次提交的标识,如 id ; branch name ; tag name ; HEAD^ ;

git reset —soft

git reset --soft commitId

撤销到 commitId 标识的提交完成之后状态(commitId的那次提交不会被撤销), 并将那次提交之后的修改,都放到暂存区。

git reset —mixed

git reset --mixed commitid

撤销到 commitId 标识的提交完成之后状态(commitId的那次提交不会被撤销), 并将那次提交之后的修改,都放到编辑区,与现在编辑区中的内容合并(如果现在编辑区中有内容的话)。

git reset —hard

git reset --hard commitid

撤销到 commitId 标识的提交完成之后状态(commitId的那次提交不会被撤销), 并将那次提交之后的修改,都丢弃。 达到的效果就是,执行这条命令的分支,会指向commitId指向那次提交。

如在dev分支执行: git reset --hard origin/dev ,达到的效果就是让dev分支与 origin/dev 分支(本地远程仓库中的dev分支)完全一致。

git checkout

checkout 除了切换分支,还可以撤销文件的修改(对于那些没有使用add等命令加入到暂存区的修改)

git checkout -- filename 撤销指定文件的修改

git checkout -- . 撤销全部文件的修改

PS: 可以使用通配符

git revert

如果某个提交已经Push到远程仓库,是不可以用reset的方法删除提交的,这时就要撤销提交。(如果是自己的远端分支,可以删除远端分支后重新push,但对于公共分支就不能这样了。)

git revert 是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留。

git revert commitId 是撤消该commit,作为一个新的commit。

git revert dev : 生成一个新提交,撤销dev分支的最后一次提交。

git commit —amend

git commit

如果我们提交过后发现有个文件改错了,或者只是想修改提交说明,这时可以对相应文件做出修改,将修改过的文件通过”git add”添加到暂存区,然后执行以下命令: git commit --amend

然后修改提交说明覆盖上次提交,但只能重写最后一次提交。

staged and stash

staged 和 stash 是两个不同的概念,尤其使用暂存这个词时。

staged 是 modified staged commit 几种状态中的一个。

stash 是将没有提交的代码临时存储到一个堆栈,以便于切换分支或做其它操作。

原文链接: https://cloud.tencent.com/developer/article/2481435

本作品采用 「署名 4.0 国际」 许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年11月26日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
三分钟快速搞定git常规使用
git是一个免费且开源的分布式版本控制系统,可以快速高效地应用于从小型到大型的项目,其实就是一个高级一点的版本控制系统。
JavaQ
2020/03/26
4530
三分钟快速搞定git常规使用
Git 给了你后悔药
它真是一个多面手命令,可以让你在分支之间来回切换,还可以查看某个 commit 同时还可以回撤本地没有 commit 的内容。
前端黑板报
2021/01/21
3210
git操作
Michel_Rolle
2023/11/27
2.7K0
Git撤销&回滚操作(git reset 和 get revert)
俗话说,老虎也有打盹的时候。我们提交代码,也会有出错的时候。 我今天不小心把不该提交的文件给提交了。
赵云龙龙
2020/02/13
38.7K0
Git撤销&回滚操作(git reset 和 get revert)
开发中要知道的git知识
git rm 要删除的文件 git mv 老文件 新文件 git status git status git commit -m "msg" git commit -m "msg"
zhouzhouya
2023/10/27
1680
通宵总结!值得你收藏的Git命令清单(全),切莫书到用时方恨少
  Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
陈哈哈
2021/10/13
4550
git最常用操作及问题解决
关于基本信息的配置 项目本机部署过程中的若个问题中提过从远程仓库克隆一个项目首先要配置用户信息,下面信息是默认用户信息配置 git config --global user.name "nick" git config --global user.email "nick@example.com" 然后执行ssh-keygen -t rsa -C "nick@example.com",生成sshkey,粘贴到托管平台上 git clone git@git.example.com:XX/project.gi
java达人
2018/02/01
5420
git 使用小结大全
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息 git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可 git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容 以下是一些reset的示例: #回退所有内容到上一个版本(HEAD回退add的版本):git reset HEAD^ #回退a.py这个文件的版本到上一个版本:git reset HEAD^ a.py #向前回退到第3个版本:git reset –soft HEAD~3 #将本地的状态回退到和远程的一样 :git reset –hard origin/master #回退到某个版本(–hard回退commit的版本) ,使用git log查询提交日志
MickyInvQ
2020/09/27
5670
新手入门最常见的Git指令简单使用
使用指定log文件的形式进行提交(本地):git ci -F cimsg.txt
小锋学长生活大爆炸
2022/12/02
4430
新手入门最常见的Git指令简单使用
三年 Git 使用心得 & 常见问题整理
「使用场景:」 当你接到一个修复紧急 bug 的任务时候,一般都是先创建一个新的 bug 分支来修复它,然后合并,最后删除。但是,如果当前你正在开发功能中,短时间还无法完成,无法直接提交到仓库,这时候可以先把当前工作区的内容 git stash 一下,然后去修复 bug,修复后,再 git stash pop,恢复之前的工作内容。
Nealyang
2020/06/19
2.9K0
三年 Git 使用心得 & 常见问题整理
Git总结
git在本地分为三个区域,工作区、暂存区和本地仓库,具体情况如下: git的一般操作就是本地代码的修改提交回滚,以及与远程仓库的拉取、合并、提交等。 git fetch   从远程仓库上抓取分支到本机
欠扁的小篮子
2018/04/11
6640
Git总结
程序员必备基础:Git 命令全方位学习
掌握Git命令是每位程序员必备的基础,之前一直是用smartGit工具,直到看到大佬们都是在用Git命令操作的,回想一下,发现有些Git命令我都忘记了,于是写了这篇博文,复习一下~
捡田螺的小男孩
2020/07/02
7730
Git 备忘清单详解
Git 是一个免费并且开源的分布式版本控制系统,旨在快速高效地处理从小到大所有项目的版本管理。Git 是目前最流行的版本管理工具,目前绝大部分公司都是使用 Git 作为项目的版本管理工具。目前最火的开源社区 Github,就是基于 Git 版本控制系统,所以掌握 Git 技能很重要。由于 Git 开发效率高、团队协作方便,现在很多 IDE 都集成了 Git,并且提供一些相关的图形化操作。也有很多很优秀,专门用来简化 Git 操作的 Git GUI 工具,例如 Sourcetree,Tortoise 等。我刚接触 Git 的时候,就是从 GUI 入手的,使用 Sourcetree 可视化版本控制工具进行操作。Sourcetree 底层也是对常用的 Git 命令进行封装实现的,傻瓜式操作,使用非常方便,但是我用完什么都不懂,Git 的内部原理也不易理解,决定在回头仔细学习一下 Git 命令行。学习完 Git 命令行后发现,命令行很好学,非常灵活,而且使用起来非常帅气。因此,直接 Git 命令,才是最灵活的操作。
程序员小强
2021/04/29
5610
Git 备忘清单详解
git 奇技淫巧
和 revert 的区别:reset 命令会抹去某个 commit id 之后的所有 commit
s_在路上
2018/09/30
6670
给自己点时间再记记这200条Git命令
image.png 我平时使用 Git 的时候,很多的 Git 命令我都不是很常用,工作中一般我们会配合一些可视化工具,或者编辑器自带的一些插件去维护 Git 仓库,但是我们也要记得一些常用 Git
wscats
2020/06/06
1.2K0
看了这篇文章,你应该可以应付工作中90%的git命令
安装完git 需设置账号和邮箱,用于标示用户身份,类似于svn的账号,但是git不存在服务器,所以无需密码验证身份。 保存位置C:\Users\yourname\\.gitconfig。
兜兜转转
2023/03/08
4570
深入理解 git 一切皆 commit
git 入门教程推荐: 简介 - Git教程 - 廖雪峰的官方网站 Git入门图文教程(1.5W字40图)🔥🔥—深入浅出、图文并茂 - 安木夕 - 博客园
jgrass
2024/12/25
1080
深入理解 git 一切皆 commit
如何高效撤销Git管理的文件在各种状态下的更改
  企业中我们一般采用分布式版本管理工具git来进行版本管理,在团队协作的过程中,我们难免会遇到误操作,需要撤销更改的情况,那么我们怎么高效的进行撤销修改呢?对于还未提交到暂存区的代码怎么高效撤销更改呢?对于已经提交到暂存区的代码,怎么取消add操作?对于已经提交到本地仓库,还没有提交到远程仓库的代码,怎么进行高效撤销更改呢?还有对于已经提交到远程仓库的代码,如何进行高效的撤销更改呢?那我们本文就来一一解决这些棘手的问题!
阿豪聊干货
2018/08/09
2.1K0
Git 的一些事
假设远程分支上有2个提交,然后基于远程develop,再创建一个分支feature。
腾讯工蜂
2018/11/20
11.6K0
Git工作中的使用
git是一个命令行工具,当前的最新版本是Git-1.9.5-preview20141217.exe。安装过程很简单,一路默认next既可。
matt
2022/10/25
3590
Git工作中的使用
相关推荐
三分钟快速搞定git常规使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档