Git 撤销与修改

增补提交

  git commit –C HEAD –a --amend

  -C表示复用指定提交的提交留言,这个例子中是HEAD,实际上可以指定其他有效的提交名称。

  如果参数是小写的-c,就会打开预先设置好的编辑器,以便在已有的提交留言基础上编辑修改。

  增补提交只能针对最后一个提交,如果想更正好几个提交之前的某个错误,则须使用git revert这个命令。

反转提交

  反转已经提交的改动,使用git revert命令,此命令通过在版本库中创建一个“反向的”新提交来抵消原来提交的改动

  通常Git会立即提交反转结果,但是也可以通过参数-n告诉Git先不要提交,这用于反转多个提交非常有用,运行多个git revert –n命令,Git会暂存所有的变更,然后做一次性提交。

  做反转操作的时候必须提供提交名称,反转总是按照从新到旧点的倒序来操作的,即最后的提交最先反转,这样可以避免一些不必要的冲突。

复位

  命令git reset可以在复位版本库后,暂存工作目录树中因复位产生的与版本库的差异,以便提交。

  这对于在之前的提交中发现错误并需要更改时非常有用。

  这是通过--soft选项实现的,它使得Git暂存所有的因复位带来的差异,但不提交它。之后,用户可以修改这些内容再提交,或者干脆扔掉这些内容。

  选项--hard要小心使用,该选项会从版本库和工作目录树中同时删除提交,--hard就好像版本库中的删除键,并且不可恢复。

  git reset是以提交名称作为参数的,默认值是HEAD,可以用^~作为提交名称的修饰符来指定某个版本。

  HEAD^是指把版本库复位到当前HEAD之前的那个节点上,把HEAD这个版本的修改扔到工作目录树中,

  540ecb7~3是指要复位到540ecb7之前的三个节点上,即把该提交和之前的两个提交(共三个提交)扔到工作目录树中。

  git reset --hard HEAD^ 强制复位前一个提交。

  git reset HEAD可以用来清除已经add到缓存区但是不想进一步提交的内容。

  另一种方式是用git rm --cached,选项--cached表明是清除缓存区,然后不动工作目录树。

  注意git checkout filename将会删除该文件中所有没有暂存和提交的改动,这个操作是不可逆的。

时间: 2024-09-11 17:38:12

Git 撤销与修改的相关文章

2017-03-10<Git撤销修改>

Git撤销修改 撤销修改分为两种情况: 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态: 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态. 总之,就是让这个文件回到最近一次git commit或git add时的状态. 情况一:工作区修改还未放到暂存区 添加一条my stu........... $ cat readme.txt Git is a distributed version cont

小蚂蚁学习git(2)——Git撤销修改和删除,远程仓库的创建推送和克隆

接上篇(http://my.oschina.net/woshixiaomayi/blog/521265)继续写. 四.Git撤销修改和删除 1.撤销修改 场景:在readme.txt中添加了一段话"今天天气不错".在还未提交之前,发现这句话写的不对,那么有一下几种方式修改:1.直接动手删除掉那些错误的内容,然后再用add添加到暂存区,在commit提交到分支.2.按照上一篇所讲到的使用命令 git reset -hard  HEAD^ 回退到上一个版本.除了昨天说的这两个方法之外,还有

git撤销修改

git撤销修改分两种情况 1.还没有 git add到stage区 直接命令git checkout -- file 撤销自己的修改 2.已经git add到stage区 先git reset HEAD <file>..." to unstage 再git checkout -- file撤销修改

git分支合并、撤销;git修改已push的commit信息; git 撤销操作;

git分支合并 1.分支代码提交 2.git branch 查询本地分支 3.git checkout 分支名1 切换分支到需要合并的分支上 4.git merge 分支名2  //选择要合并到 分支名1 的分支名2 eg: 如果develop_screen分支合并到develop分支上,这个时候切换到develop分支上, git merge develop_screen 5.合并之后可能会有冲突,可用git status 查看冲突代码 <<<<<<<  ===

如何使用git回退部分修改(转)

如何使用git回退部分修改(转) 很多时候,git新手容易误操作,比如,在levelIISZ-1.4.dev分支下,运行了git pull idc cpp-1.0的结果,这样做麻烦很大,经常导致maven项目格式不正确,这个时候,可以用git reset --hard 去撤销这次修改但是这样做也有问题,可能之前本地的,没有提交的修改,都消失了.可以尝试git revert命令 reset是指将当前head的内容重置,不会留任何痕迹. Sets the current head to the sp

git 撤销提交的文件

一.问题 近期在使用git时遇到一个问题,就是在git上传文件时,将一个100兆的大文件添加到了git,并执行了push操作,这时在上传完毕后,会提示这个错误 Large files detected see http:git.io/iEPt8g for more information this is larger than GitHubs recommended maximum file size of 50MB 即git无法上传超过50M的单个文件. 如果未push,可通过git comm

Git 撤销指南

Git 撤销指南 Git 撤销有三个场景场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file. 场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作. 场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,用命令:git reset --hard commit_id不过前提是没有推送到远程库. 场景一 在熬夜加班时

谈谈 git 撤销操作

在工作中,往往会因为一些误操作,想撤销代码,下面我简单介绍一下如何操作(如果不了解 git 的基础用法,可以点击这里:链接) 撤销本地修改 git checkout 文件 撤销所有文件 git checkout . 撤销所有文件 git clean -df 撤销所有文件也可以执行 git clean -df git reset --hard 撤销已经提交的修改 git revert 版本号 撤销已提交的修改也可以执行 git reset --hard 版本号 原文地址:https://www.c

[git] warning: LF will be replaced by CRLF | fatal: CRLF would be replaced by LF[ git 处理和修改行结束符(CRLF和LF)]

我自己的设置是: [core] autocrlf = false[core] safecrlf = true 取消自动转换CRLF(上图中选的是commit as is),但是有提交前混用检查 本人用的是WINDOWS下的PHPSTORM开发的PHP 遇到这两个错误,是因为Git的换行符检查功能. core.safecrlf Git提供了一个换行符检查功能(core.safecrlf),可以在提交时检查文件是否混用了不同风格的换行符.这个功能的选项如下: false - 不做任何检查 warn