在个人开发和协同开发过程中,我们是通过git把我们本地仓库和远程仓库联系起来,首先 我们要知道的是git 有工作区、暂存区和Git仓库。我们本地编写的代码,不执行git命令都处于工作区。

执行 git add 将工作区的文件标记为已暂存,添加到暂存区。

执行 git commit 将标记的已暂存的文件都保存到本地仓库。

而正常开发过程中,我们经常要使用到的git命令就是: git add、  git commit 、git push、git pull、git merge 等,但这些命令都是在一切操作都很顺利的过程下,如果需要有一些撤回和回退操作的话,又会有哪些命令可以帮助我们呢,接下来我们就一起梳理一下:

1.工作区的撤销

本地的修改,没有操作git命令,我们可以通过git diff来查看修改的内容。

如果我们可能只是写了一些测试代码,想取消这些修改,可以通过下面命令撤销:

// 全部文件撤销
git checkout -- .//单个文件撤销
git checkout -- [filename]

此时再 git diff 就没有输出。 注意:上面的命令一旦执行了,之前的修改就找不回来了。

2. 暂存区的撤销

本地写完代码之后,我们会通过 git add 添加到暂存区,此时我们想看文件的修改 git diff不会输出任何东西。想查看暂存区的修改,可以执行下面命令:

git diff --staged 

这个时候可以看到我们 git add 之前一样的输出。

如果我们想将修改从暂存区撤回,可以通过下面的方式:

// 全部文件撤销
git reset .//单个文件撤销
git reset [filename]

回到提交暂存前的工作区状态。

3. 提交到本地仓库的撤销

提交本地仓库,我们会通过下面命令:

git commit -m "commit一次"   // 查看一下操作记录
git log

想撤销这一次的commit 可以找到上一次commit的记录:

git checkout a6dbda177723c7615a095f494e6152fda12be11f// 或者
git reset --hard HEAD~1//再次查看日志
git log

如果不是想撤销最新一次的commit,想撤回之前的某一次commit:

git revert 99053897bc56d302af8f0d4ed68311d21af3174c

revert之后,会在提交历史的最前面生成一个新的revert commit 记录。

4. 修改commit 的message

commit 文案写错了,然后想要修改:

git commit --amend -m "修改正确的msg"

不会多生成一条commit记录,只是把之前的一次修改掉。

5. 合并到上一次commit

第一次修改了文件,提交了一次commit;后面又修改了一些东西,不想生成两条commit:

git commit --amend

6.撤销merge

如果git merge 分支之后有冲突,想先撤回这次merge:

git merge --abort

因为最近的工作过程中,有一些意外情况进行了一些git的回退操作,所以总结了以上几种回退和撤回操作,也希望可以给大家带来一些帮助~

git的一些撤销/回退操作相关推荐

  1. linux的vim撤销命令,[Linux] Vim 撤销 回退 操作

    在vi中按u可以撤销一次操作 u   撤销上一步的操作 Ctrl+r 恢复上一步被撤销的操作 注意: 如果你输入"u"两次,你的文本恢复原样,那应该是你的Vim被配置在Vi兼容模式 ...

  2. git撤销/回退操作

    以config文件为例 修改后的撤销 git status后提示为modified已修改的文件, 撤销方法git checkout -- config,比如如果vendor目录下有多个文件修改,且需要 ...

  3. 【git系列】git命令之撤销回退篇

    撤销工作区修改 工作区修改代码,并未存入暂存区. 适用场景:工作区对某段逻辑代码进行优化,突然发现存在一定的问题,性能不一定比之前提交的代码优秀,放弃本次对文件的修改. #撤销指定文件 git che ...

  4. linux vim怎么回退,[Linux] Vim 撤销 回退 操作

    在vi中按u可以撤销一次操作 u 撤销上一步的操作 Ctrl+r 恢复上一步被撤销的操作 注意: 如果你输入"u"两次,你的文本恢复原样,那应该是你的Vim被配置在Vi兼容模式了. ...

  5. 【Git】Git 本地的撤销修改和删除操作

    一:撤销操作 比如我现在在readme.txt文件里面增加一行 内容为555555555555,我们先通过命令查看如下: 在我未提交之前,我发现添加5555555555555内容有误,所以我得马上恢复 ...

  6. git常见的回退操作

    有时候在操作git的时候,不免有时提交或修改过快,需要进行一些回退操作,下面来看一下. lj@lj-virtual-machine:~/111111/git/gittest$ git status 位 ...

  7. vi格式化代码,撤销,重做,回退操作

    在vim中其实也有像Eclipse中的ctrl + shift +F 的自动格式化代码的操作,尽管非常强大,但是通常会破坏代码的原有的缩进, 所以不建议在python这样缩进代替括号的语言中和源程序已 ...

  8. html5 observer api,基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作

    MutationObserver介绍 MutationObserver给开发者们提供了一种能在某个范围内的DOM树发生变化时作出适当反应的能力.该API设计用来替换掉在DOM3事件规范中引入的Muta ...

  9. git commit -m 撤销操作

    1. 撤销本次commit-m操作 返回到add成功状态 git reset --soft HEAD^ 2.撤销本次commit+add 返回本地未提交状态 git reset --hard HEAD ...

最新文章

  1. 机房安防系统常见故障原因及处理方法
  2. div中插入图片_Web前端开发基础知识,设置网页背景图,如何在网页中插入图片...
  3. html语言中div怎么起名,css如何命名?
  4. Java的并发编程中的多线程问题到底是怎么回事儿?
  5. KeyMob:为国内应用开发者管理的广告聚合平台
  6. 浏览器获取设备信息_一条命令获取 IE 浏览器保存网站的账号和密码信息
  7. python零基础8分钟基础入门
  8. “打工皇帝”唐骏借收购重返IT
  9. easymock接口模拟_EasyMock好又严格的模拟
  10. 单片机1到十五c语言,手把手教你学单片机的C语言程序设计(十五).pdf
  11. openlayers2渐变色渲染
  12. 10分钟搭建你的云端微信机器人️️️
  13. 力扣LeetCode刷题8 机器人大冒险
  14. ultravnc服务器不接收消息,远程控制软件UltraVNC的教程
  15. Java判断闰年和平年
  16. poi 公式转 图片_三阶魔方公式符号图解V2.0(2017/12/15)_碧海风云
  17. Windows 静态库函数名称问题
  18. 支持Apple Music无损音频的耳机型号以及iPhone、iPad
  19. ipcMain和ipcRenderer的通信
  20. motan学习笔记 二 motan架构分析

热门文章

  1. NYOJ 237 NYOJ 239 二分图 最大匹配模板题 游戏高手的烦恼 月老的难题 两个题一样
  2. 谈谈VR游戏中的性能优化
  3. http协议1.x/2.x区别
  4. 苹果home兼容问题修改--苹果fixed定位被遮挡-或者距离太近
  5. 如何查看自己的淘宝号使用多久了,淘龄怎么查?
  6. uni 登录token方法_uni-app 中保持用户登录状态
  7. TP、TN、FP、FN 含义
  8. 李沐-斯坦福《实用机器学习》-01章
  9. python如何回退_Pycharm技巧之代码跳转该如何回退
  10. 常见字读音(粤语)---(3)