浅谈git撤销回退命令相关用法

原创 2017年04月26日 20:27:55

初来公司实习,每次改完代码后都需要用代码管理工具git提交到代码库。由于刚开始对 git 并不熟悉,只会简单的 commit,push 指令,一旦提交出了问题需要撤销回退的话就不知道该怎么办了。经过一段时间的研究,总算是把里面相关原理搞懂了,遇到git提交出现问题,现在自己也能想办法解决而不至于手足无措了。下面就说说我对git撤销回退这块相关的理解。

git reset

首先,我们要弄清以下三条命令的区别:

git reset –hard

git reset –soft

git reset

工作区,暂存区,本地仓库,远程仓库的概念我在这里就不介绍了。这是git最为基础的概念,可自行百度。下面说说这三条 git reset 指令的区别:

git reset –hard: 重置工作区,暂存区,本地仓库的所有文件到某一节点。例如 git reset –hard HEAD^ 表示工作区,暂存区,本地仓库的所有文件全部回退到上一个节点,也就是说你从上一个节点到这个节点之间所做的修改全部被撤销了。当然如果要回到特定的一个节点可以用 git reset –hard commitId 。通过指定要回到的节点值来回到对应的节点。

git reset –soft:只重置本地仓库的文件,工作区和暂存区的文件不变。

git reset 等同于 git reset –mixed,只重置本地仓库和暂存区文件,工作区文件不变。

当我们提交完并push代码到远程仓库后,发现代码有问题,想重新提交,首先在gerrit上abandon掉自己刚才上传的代码,接着,用git reset HEAD^或者git reset –soft HEAD^回到上一个节点(git reset HEAD^后,使用git add .就相当于git reset –soft),不要用git reset –hard。因为这会把你本地工作区修改的全部撤销,这样你之前的修改就全没了。虽然也有办法再找回来,只要找到那次提交的commitId就可以了,下面会介绍。

另外,我们还可以用git reset file 来使一个已经添加到暂存区的file文件重新返回到工作区。

git log

我们通过git log就可以查看到每次提交的 commitId 了,如果嫌 git log 显示的信息过多,可以使用 git log –pretty=oneline 让每次提交的关键信息在一行显示。但是如果使用了 git reset –hard,那么使用 git log 只能看到你重置点之前的提交 commitId,无法看到重置点之后的提交 commitId,要想找到重置点之后的 commitId 可以用git reflog。

git checkout

git checkout有两个作用,如果后面接的是文件名的话,如 git checkout file 可以将一个工作区的文件撤销其修改。如果后面接的是分支名的话,如 git checkout b表示的是切换到b分支。对于工作区新建立的文件,用 git clean -df 可将其移除工作区。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Git管理多个远端仓库的方法

作者: yongquan.xu 本文针对目前项目同时维护2个远端仓库的情况,介绍了用一个工作项目,同时提交的方法。 1、工程配置 由于S2和X588的系统主题不一样,本节介绍通过工程...

git获取linux内核源码及分支管理

1.    环境:ubuntu12.04. 2.    git安装:sudo apt-get install git-core ,安装完后查看版本如下:            3.   获取linux...

Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突

Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突 这篇是接着上篇分布式版本库——Window...

Git(版本回退、工作区与暂存区、管理修改、撤销修改、删除文件)常用操作及原理

git常用的版本控制操作

Git学习笔记二(版本回退、工作区和暂存区、撤销修改、删除文件)

Git学习笔记二
  • peisir
  • peisir
  • 2017年08月08日 20:21
  • 272

【Git/Github学习笔记】Git常用命令(版本回退)

版本回退 将远程仓库抽取到本地:前面提到了两种方式,(1)git pull (2)git fetch  + git merge的命令。 当我们发现修改过并提交过的程序不合理时,我们想恢复到以前的版本,...

浅谈git命令

浅谈git命令

【浅谈git常用命令】

前言本篇是继《浅谈git如何使用》之后介绍常用的git指令操作,如果还有了解过git的朋友们,建议先看看这篇博客,这篇博客主要是介绍如何动手安装git的环境、如何将本机绑定github账号、如何在gi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈git撤销回退命令相关用法
举报原因:
原因补充:

(最多只允许输入30个字)