Git入门指南八:Git撤消操作

原创 2014年02月28日 18:55:41

十二. Git撤消操作

12.1 修改最后一次提交 git commit --amend

1.新建一个文件 2.提交一个之前的更改


3.跟踪这个文件 4.跟前一次一起提交


提示你是否重新编辑提交说明,如果不编辑退出后还是跟之前一样提交



commit 成功

或 git commit -m “” 可以直接提交

12.2 撤消已暂存的文件 git reset HEAD

#新建两个文件
bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ touch 1txt
bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ touch 2txt
#全部暂存
bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git add -A
#查看文件状态
bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#     new file:   1txt
#     new file:   2txt
# 


#取消暂存 1txt
bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git reset HEAD 1txt
#再次查看文件状态,1txt 已经被取消啦

bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#     new file:   2txt
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#     1txt 


12.3 撤消对文件的修改 git checkout -- <file>

bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ ls
README          TEST            android-package ios-package     testamend
#修改文件testmend
bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ vim testamend
bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
# 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:   testamend
#
no changes added to commit (use "git add" and/or "git commit -a”)
#撤消文件的修改
bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git checkout -- testamend
bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean 

12.4 Git撤消commit

  1. git log查看日志,找到需要回退的那次commit的 哈希值

2. git reset --hard commit_id

12.5 Git版本回退

#查看log
bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git log
commit 047cd2d2f6bd1ecdcdb4854b728300aeaa314b80
Author: 小朋 <xiaopeng.bxp@****.com>
Date:   Thu Jan 2 22:26:50 2014 +0800


    1test


commit fa7fd8d49f3789d39aa3cc52cd81e09e6d061719
Author: 小朋 <xiaopeng.bxp@****.com>
Date:   Tue Dec 31 13:29:45 2013 +0800


    delete test2


commit 746f92258e2bc65c46f77f37315f577091192885
Author: 小朋 <xiaopeng.bxp@****.com>
Date:   Tue Dec 31 13:22:07 2013 +0800


    test git commit -a 

…..

HEAD是指向最新的提交,上一次提交是HEAD^,上上次是HEAD^^,也可以写成HEAD~2 ,依次类推

#放弃本地所有修改,回退到上一个版本
bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git reset --hard HEAD^
HEAD is now at fa7fd8d delete test2

注: --hard 表示放弃所有本地改动

#再次查看log
bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git log
commit fa7fd8d49f3789d39aa3cc52cd81e09e6d061719
Author: 小朋 <xiaopeng.bxp@****.com>
Date:   Tue Dec 31 13:29:45 2013 +0800


    delete test2


commit 746f92258e2bc65c46f77f37315f577091192885
Author: 小朋 <xiaopeng.bxp@****.com>
Date:   Tue Dec 31 13:22:07 2013 +0800


    test git commit -a


commit e301c4e185b0937d1ce9484ea86ab401e95c976c
Author: 小朋 <xiaopeng.bxp@****.com>
Date:   Tue Dec 31 13:14:42 2013 +0800


    just test 

………..

回退到指定的版本 git reset --hard <哈希值>

bixiaopeng@bixiaopengtekiMacBook-Pro wirelessqa$ git reset --hard 746f92258e2bc65c46f77f37315f577091192885
HEAD is now at 746f922 test git commit -a 

12.6 撤消未跟踪文件 git clean -dxf

「举个例子」

清除所有未跟踪文件,包括纳入ignored的文件。如果要保留ignored的文件修改,使用参数-df

#清除所有未跟踪文件,包括纳入ignored的文件
bixiaopeng@bixiaopeng-To-be-filled-by-O-E-M:~/workspace2/spark$ git clean -dxf
正删除 .idea/
正删除 .package.sh.swp
正删除 assets/sparklog/
正删除 backup-config/AndroidManifest.xml
正删除 backup-config/channel_config.xml
正删除 backup-res/assets/
正删除 backup-res/res/
正删除 debug
正删除 package/spark_2.4_L95_91zhuomian.apk
正删除 res/values/channel_config.xmlg
正删除 target/
正删除 xiamimusic.iml
#再查看一下未跟踪的文件已经被撤消了
bixiaopeng@bixiaopeng-To-be-filled-by-O-E-M:~/workspace2/spark$ git status
# 位于分支 test
# 尚未暂存以备提交的变更:
# (使用 "git add <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 修改: pom.xml
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")`

微信公众帐号: wirelessqa

wirelessqa

关于作者:

作者: 毕小朋 | 老 毕 邮箱: wirelessqa.me@gmail.com

微博: @WirelessQA 博客: http://blog.csdn.net/wirelessqa

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

git基本操作介绍

出库 git clone 与 git pull的区别 [smbtest@localhost a]$ git init [smbtest@localhost a]$ git clone [remo...
  • teddy99999
  • teddy99999
  • 2014年02月02日 14:27
  • 30417

Your branch is ahead of 'origin/master' by 1 commit

如果只在本地修改,还没有commit,那么用git status, 打印信息为: # On branch master # Changes not staged for commit: #   ...
  • leeagle
  • leeagle
  • 2012年08月01日 16:01
  • 36854

Git Your branch is ahead of 'origin/master' by X commits解决方法

You get that message because you made changes in your local master and you didn’t push them to remot...
  • Thousa_Ho
  • Thousa_Ho
  • 2017年06月16日 19:56
  • 5229

git checkout之一 HEAD基本和detached 状态

1.HEAD基础git checkout 实际上是修改HEAD文件的内容,让其指向不同的branch。HEAD文件指向的branch就是当前branch.一般来讲,HEAD的内容是指向staging(...
  • sheismylife
  • sheismylife
  • 2012年05月19日 18:40
  • 58411

git出错"Your branch is ahead of 'origin/LS3A_2H' by 4 commits"解决

当运行命令 git status 后,出现这种log信息,之后修改程序push时会出错,所以在出现这种信息时就需要进行sync修改。...
  • u010383937
  • u010383937
  • 2017年06月07日 17:05
  • 659

why does it say “Your branch is ahead of origin/master

http://stackoverflow.com/questions/11032661/why-does-it-say-your-branch-is-ahead-of-origin-master-by...
  • caolaosanahnu
  • caolaosanahnu
  • 2014年06月27日 14:10
  • 1530

git 使用详解(6)-- 撤消操作

撤消操作 接下来,我们会介绍一些基本的撤消操作相关的命令。请注意,有些操作并不总是可以撤消的,所以请务必谨慎小心,一旦失误,就有可能丢失部分工作成果。 修改最后一次提交 有时候我们提交完了才发现...
  • wh_19910525
  • wh_19910525
  • 2012年04月17日 15:25
  • 12670

git中取消对文件的修改

有的时候我们在本地修改了一个文件,但是又不想修改了,想直接用远程的文件覆盖我们修改的文件hui.qian@HUIQIANPC /e/testerhome/chimpchat (master) $ gi...
  • qhshiniba
  • qhshiniba
  • 2015年03月03日 17:00
  • 2046

git使用中碰到的问题,持续更新

1、git删除远程分支 git push origin :branch-name //origin后面必须有空格,表示push一个空分支到远程分支,即可删除远程分支 2、清空git暂存区 git re...
  • a420344
  • a420344
  • 2016年06月30日 18:02
  • 4293

git 回滚单个文件

1  只修改一个文件,查看当前状态 shuohailhl@SHUOHAILHL-PC /f/ggg/jingwei/jingwei-webconsole (master) $ git status #...
  • arkblue
  • arkblue
  • 2013年08月10日 12:35
  • 37569
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Git入门指南八:Git撤消操作
举报原因:
原因补充:

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