文档章节

Git开发实战(三)之撤销操作(reset、checkout)

飞鱼说编程
 飞鱼说编程
发布于 2017/10/26 09:31
字数 699
阅读 15
收藏 0
Git

一、使用reset命令撤销本地仓库的提交

      1.我在README文件中,写一点东西,然后提交;

aibin@XiaoAibin MINGW64 ~/Desktop/test_git (master)
$ vim README

aibin@XiaoAibin MINGW64 ~/Desktop/test_git (master)
$ git commit -m '写README文件'
[master efb939b] 写README文件
 1 file changed, 10 insertions(+)

       2.然后,我觉得我写的不正确,但是我已经提交到本地仓库了,如果我想要撤销上一次的提交,我可以进行reset操作(注意--soft表示使用比较柔和的方式,HEAD~1表示最近一次的提交);然后执行完,查看git status,就可以看到git的当前状态,可以看到README文件回到了待提交列表中;

aibin@XiaoAibin MINGW64 ~/Desktop/test_git (master)
$ git reset --soft HEAD~1

aibin@XiaoAibin MINGW64 ~/Desktop/test_git (master)
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   README

      如果,我使用git reset HEAD~1,不使用柔和的方式撤销,就会直接将上一次提交到本地仓库的文件回退到本地代码中;

aibin@XiaoAibin MINGW64 ~/Desktop/test_git (master)
$ git reset HEAD~1
Unstaged changes after reset:
M       README

aibin@XiaoAibin MINGW64 ~/Desktop/test_git (master)
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   README

     但是,注意

      撤销操作不要轻易使用,一般用的很少,因为协同开发,使用撤销可能会出现严重问题!

二、使用checkout撤销本地还未提交的改动

      1.接着前面的操作,我们已经将之前修改的README文件已经回退到了本地代码中,并且告知我们README文件已经做了修改,提示我们:(1)使用git add 将该文件添加到待提交列表中;(2)使用git checkout来取消该文件的改动;

       我们使用git checkout -- README 命令来取消修改,然后使用git diff看看修改前后的不同之处,因为我们是在空白的文件中添加,然后又取消了,所以现在没有什么不同,然后使用git status查看状态,可以看到没有需要提交的,我们已经成功回退到原来的版本,再查看README文件,里面依旧是空白的,跟修改前是一样的;

aibin@XiaoAibin MINGW64 ~/Desktop/test_git (master)
$ git checkout -- README

aibin@XiaoAibin MINGW64 ~/Desktop/test_git (master)
$ git diff

aibin@XiaoAibin MINGW64 ~/Desktop/test_git (master)
$ git status
On branch master
nothing to commit, working tree clean

aibin@XiaoAibin MINGW64 ~/Desktop/test_git (master)
$ vim README

 

本文为原创文章,如果对你有一点点的帮助,别忘了点赞哦!比心!如需转载,请注明出处,谢谢!

 

© 著作权归作者所有

飞鱼说编程

飞鱼说编程

粉丝 195
博文 366
码字总数 685323
作品 0
深圳
程序员
私信 提问
详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别

一、可以将git简单的分为三个区域 1、工作区(working directory) 2、暂缓区(stage index) 3、历史记录区(history) 如图: 其中git add files 把当前工作目录中的文件放入暂存区域 这其...

天王盖地虎626
02/09
113
0
Git简明教程

【git教程】 http://www.liaoxuefeng.com/ (廖雪峰博客) http://rogerdudler.github.io/git-guide/index.zh.html (Git简明教程) 【常用命令】 PS:在MacOS系统环境下的git命令。 工作流 ...

shahdza
2015/03/01
0
0
git日常命令

git入门简介 git基础概念 git是目前最好的版本控制系统(没有之一) branch git里面核心的内容是分支(branch),不同于svn的是,分支的成本很低,只记录变化的文件。git官方是非常推荐是使用...

dxbj1010
2016/06/23
51
2
代码回滚:Reset、Checkout、Revert的选择(转)

BY 童仲毅(geeeeeeeeek@github) 这是一篇在原文(BY atlassian)基础上演绎的译文。除非另行注明,页面上所有内容采用知识共享-署名(CC BY 2.5 AU)协议共享。 、和是你的Git工具箱中最有用的一...

dapengking
2016/10/21
41
0
git的日常操作

git参考 http://www.git-scm.com/book/zh/ch3-5.htmlgit中文资料 http://blog.csdn.net/yangwen123/article/details/8664342 https://github.com/abhikp/git-test/wiki/View-the-commit-log-......

zhouyc
2015/09/18
90
0

没有更多内容

加载失败,请刷新页面

加载更多

[top]cpu内存

%Cpu(s): 96.0 us用户进程整理cpu的占比,按整个cpu算。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND ......

Danni3
2分钟前
1
0
JavaScript权威指南笔记2

第二章、词法结构 1、字符集 JavaScript程序:Unicode字符集编写 Unicode:ASCII和Latin-1的超集,支持所有在用的语言。 ECMAScript 3要求JavaScript的实现必须支持Unicode 2.1及后续版本 EC...

_Somuns
10分钟前
2
0
数据安全管理:RSA算法,签名验签流程详解

本文源码:GitHub·点这里 || GitEE·点这里 一、RSA算法简介 1、加密解密 RSA加密是一种非对称加密,在公开密钥加密和电子商业中RSA被广泛使用。可以在不直接传递密钥的情况下,完成加解密操...

知了一笑
50分钟前
5
0
Podman 使用指南

> 原文链接:Podman 使用指南 Podman 原来是 CRI-O 项目的一部分,后来被分离成一个单独的项目叫 libpod。Podman 的使用体验和 Docker 类似,不同的是 Podman 没有 daemon。以前使用 Docker...

米开朗基杨
今天
6
0
拯救 项目经理个人时间的5个技巧

优秀的项目经理都有一个共同点,那就是良好的时间管理能力。专业的项目经理会确保他们的时间投入富有成效,尽可能避免时间浪费。 时间管理叫做GTD,即Getting Things Done——“把事情做完”...

Airship
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部