[转]Git 撤销操作
二. 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
git log查看日志,找到需要回退的那次commit的 哈希值
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")`
[转]Git 撤销操作的更多相关文章
- 从零开始使用git第三篇:git撤销操作、分支操作和常见冲突
从零开始使用git 第三篇:git撤销操作.分支操作和常见冲突 第一篇:从零开始使用git第一篇:下载安装配置 第二篇:从零开始使用git第二篇:git实践操作 第三篇:从零开始使用git第三篇:gi ...
- Git撤销操作
撤销操作的相关文章 http://www.linuxidc.com/Linux/2015-06/119350.htm ——撤销已经修改,但是还没有添加到暂存区的操作: 解决方案: 有两种情形: ...
- Git 撤销操作、删除文件和恢复文件
大致介绍 经过前面的学习,已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即: ◆ 撤销操作 ◆ 删除文件 ◆ 恢复文件 我在此之前,已经将三个文件提交到了版本库 撤销操作 撤销操 ...
- 掌握Git撤销操作,随心所欲控制文件状态
本文主要讨论和撤销有关的 git 操作.目的是让读者在遇到关于撤销问题时能够方便迅速对照执行解决问题,而不用去翻阅参数繁多的 git 使用说明. 一开始你只需了解大致功能即可,不必记住所有命令和具体参 ...
- Git学习总结(11)——Git撤销操作详解
本文主要讨论和撤销有关的 git 操作.目的是让读者在遇到关于撤销问题时能够方便迅速对照执行解决问题,而不用去翻阅参数繁多的 git 使用说明. 一开始你只需了解大致功能即可,不必记住所有命令和具体参 ...
- 谈谈 git 撤销操作
在工作中,往往会因为一些误操作,想撤销代码,下面我简单介绍一下如何操作(如果不了解 git 的基础用法,可以点击这里:链接) 撤销本地修改 git checkout 文件 撤销所有文件 git che ...
- git撤销操作总结
git checkout . #本地所有修改的.没有的提交的,都返回到原来的状态 git stash #把所有没有提交的修改暂存到stash里面.可用git stash pop回复. git rese ...
- Git学习之路(4)- 撤销操作、删除文件和恢复文件
▓▓▓▓▓▓ 大致介绍 经过前面的学习(小白学Git)已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即: ◆ 撤销操作 ◆ 删除文件 ◆ 恢复文件 我在此之前,已经将三个文件提交 ...
- 5.Git基础-撤销操作、标签的使用、Git别名
1.撤销操作 1.1 修改上一次的提交(commit)-- git commit --amend 有时候我们在提交完成之后才发现有几个文件没有提交,或者发现提交信息填写错了,这时候可以使用 git ...
随机推荐
- springboot项目用maven打jar包
clean package -Dmaven.test.skip=true idea eclipse STS
- TabActivity 、fragemnt+fragment 和 Fragment+Viewpager 优缺点
1 TabActivity : 1 过时了 . 2 activity . 是作为android的四大组件... 重量级的家伙 ViewGroup : 特别麻 ...
- python动态调用函数
callmap = {ts.get_stock_basics: 'D:/dxw/code/all.csv', ts.get_sz50s: 'D:/dxw/code/50.csv', ts.get_hs ...
- 杂记(那些我还容易混淆的c和c++知识)
1: 定义一个对象时先调用基类的构造函数.然后调用派生类的构造函数:析构的时候恰好相反:先调用派生类的析构函数.然后调用基类的析构函数.2: 多态性具体体现在运行和编译两个方面:在程序运行时的多态性 ...
- js 时间转换毫秒的四种方法(转)
将时间转换为毫秒数的方法有四个: Date.parse()Date.UTCvalueOf()getTime() 1. Date.parse():该方法接受一个表示日期的字符串参数,然后尝试根据这个日期 ...
- ztz11的noip模拟赛T2:查房
链接: https://www.luogu.org/problemnew/show/U46611 思路: 这道题告你n-1条边就是骗你的 部分分也是骗你的 这道题连对边5分钟的事 一个点对另一个点有影 ...
- PHP-掌握基本的分布式架构思想
虽然说写PHP目前都是接触的业务代码,发现写久了,也要熟悉相应的架构 在高并发,高可用的系统下,都是使用高性能的分布式架构,最近在学习相关知识 分享一张图片: 欢迎关注公众号[phper的进阶之路], ...
- Hadoop源码学习笔记之NameNode启动场景流程二:http server启动源码剖析
NameNodeHttpServer启动源码剖析,这一部分主要按以下步骤进行: 一.源码调用分析 二.伪代码调用流程梳理 三.http server服务流程图解 第一步,源码调用分析 前一篇文章已经锁 ...
- WOT干货大放送:大数据架构发展趋势及探索实践分享
WOT大数据处理技术分会场,PingCAP CTO黄东旭.易观智库CTO郭炜.Mob开发者服务平台技术副总监林荣波.宜信技术研发中心高级架构师王东及商助科技(99Click)顾问总监郑泉五位讲师, ...
- exynos4412—CMU裸板复习
本章描述了Exynos 4412 SCP的时钟管理单元(CMUs).在Exynos 4412 SCP中,CMUs控制相位锁相环(PLLs),并为CPU.总线和单个ip的功能时钟生成系统时钟.它们还与电 ...