如果不小心commit了一个不需要commit的文件,可以对其进行撤销。

先使用git log 查看 commit日志

  1. commit 422bc088a7d6c5429f1d0760d008d86c505f4abe
  2. Author: zhyq0826 <zhyq0826@gmail.com>
  3. Date:   Tue Sep 4 18:19:23 2012 +0800
  4. 删除最近搜索数目限制
  5. commit 8da0fd772c3acabd6e21e85287bdcfcfe8e74c85
  6. Merge: 461ac36 0283074
  7. Author: zhyq0826 <zhyq0826@gmail.com>
  8. Date:   Tue Sep 4 18:16:09 2012 +0800

找到需要回退的那次commit的 哈希值,

git reset --hard commit_id

使用上面的命令进行回退

以下是豆瓣的

苍炎的日记

起因: 不小新把记录了公司服务器IP,账号,密码的文件提交到了git



方法:





    git reset --hard <commit_id>



    git push origin HEAD --force







其他:



    根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:

    git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

    git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index

file一级。如果还要提交,直接commit即可

    git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容





    HEAD 最近一个提交

    HEAD^ 上一次

    <commit_id> 每次commit的SHA1值. 可以用git log 看到,也可以在页面上commit标签页里找到

亲测 git

reset –soft命令,只是撤销了commit的提交记录,commit改动的代码仍然存在,很受用。

git

reset --soft commit-id,其中的commit-id指的是撤销之前的那个commit id.









一、命令行方式删除

本地

远程

分支

命令:

git branch -D  <分支名称>

执行效果:只删除Git库工作区的本地分支,不会将Git库工作区中该远程分支的引用文件删除,也不会删除远程库中的同名分支。

命令:

git push origin --delete <分支名称>

注:“分支名称”处直接填写分支名称,不要带上origin的字样

执行效果:将远程库中的分支删除,并会将Git库工作区中该远程分支的引用文件删除,但是不会删除Git库工作区中与这个远程分支建立了“tracking”联系的本地分支。

tag

命令:

git tag -d <tag名称>

执行效果:删除Git库工作区中的tag,不会将远程库中的同名tag删除

命令:

git push origin --delete tag <tag名称>

执行效果:将远程库中的tag删除,但不会删除Git库工作区中的同名tag

转git取消commit的更多相关文章

  1. git 取消commit

    git如何撤销上一次commit操作 1.第一种情况:还没有push,只是在本地commit git reset --soft|--mixed|--hard <commit_id> git ...

  2. git commit后如何取消commit

    在git使用中要如何取消commit但是还未push的操作? 通常,我们对修改的文件会先git add .,然后git commmit -m "注释",但是如果commit错了,想 ...

  3. [git] 细说commit (git add/commit/diff/rm/reset 以及 index 的概念)

    http://kasicass.blog.163.com/blog/static/39561920133294219374/ 创建测试仓库 $ git init $ echo "line o ...

  4. git撤销commit 并保存之前的修改

    撤销并保留修改 参数 –soft  # 先进行commit ,之后后悔啦  $ git commit -am "对首篇报告研究员字段改为author_name" 执行git log ...

  5. Git 学习(三)本地仓库操作——git add & commit

    Git 学习(三)本地仓库操作——git add & commit Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念.这在上文已有提及,本文具体说明什么是工作区及暂存区,以及 ...

  6. git 修改commit 的注释

    git 修改commit 的注释 一:最新的一次提交 当你不小心,写错了提交的注视/信息,该如何处理呢.理论上,SCM是不应该修改历史的信息的,提交的注释也是.    不过在git中,其commit提 ...

  7. git取消链接并删除本地库

    有的时候我们需要删除从GitHub上克隆下来的库 从github上clone一个仓库: git clone git@github.com:USERNAME/repo.git 在本地目录下关联远程rep ...

  8. git 取消未成功的 merge

    git 取消未成功的 merge # 合并时遇到冲突想取消操作,恢复index $ git merge --abort # 可以回退到某个提交 $ git reset --hard # 可以撤销某个提 ...

  9. git取消本地commit

    如果不小心commit了一个不需要commit的文件,可以对其进行撤销. 先使用git log 查看 commit日志 commit 422bc088a7d6c5429f1d0760d008d86c5 ...

随机推荐

  1. webpack学习(二):先写几个webpack基础demo

    一.先写一个简单demo1 1-1安装好webpack后创建这样一个目录: 1-2:向src各文件和dist/index.html文件写入内容: <!DOCTYPE html> <h ...

  2. 谈谈在.NET Core中使用Redis和Memcached的序列化问题

    前言 在使用分布式缓存的时候,都不可避免的要做这样一步操作,将数据序列化后再存储到缓存中去. 序列化这一操作,或许是显式的,或许是隐式的,这个取决于使用的package是否有帮我们做这样一件事. 本文 ...

  3. 关于transform的3D变形函数

    继续transform的3D用法: translate3d(x,y,z)定义3D转换 transformX(x)只用x轴的值进行转换: transformY(y)只用y轴的值进行转换: transfo ...

  4. HDU5919:Sequence II

    题面 Vjudge Sol 给一个数列,有m个询问,每次问数列[l,r]区间中所有数的第一次出现的位置的中位数是多少,强制在线 主席树 询问区间内不同的数的个数 树上二分找到那个中位数 # inclu ...

  5. [SDOI2015]星际战争

    水题啦 网络流+二分 误差才10^-3,乱搞直接开longlong暴力每个都乘1000,输出时除一下就好了 # include <bits/stdc++.h> # define IL in ...

  6. Error:Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/adp;

    Q:版本号不对,广告插件的版本号和项目中用的版本号不一致 A:adsplugins的build gradle里面用的版本号是10.0.1,修改app的build gradle 的google类都改成1 ...

  7. 找出k个数相加得n的所有组合

    Find all possible combinations of k positive numbers that add up to a number n,each combination shou ...

  8. elfinder源码浏览-Volume文件系统操作类(1)

    今天看了一个文件管理的java后台源码,elfinder 发现这个东东比我写的代码效率告到不知道哪去了,苦思冥想后还是抽点时间看看吧.. 它实现了我们电脑上的所以关于文件操作的动作,并生成了api开放 ...

  9. CMake 条件判断

    CMake简介 CMake 是做什么的? CMake是一套类似于automake的跨平台辅助项目编译的工具. 我觉得语法更加简单易用. CMake的工作流程 CMake处理顶级目录的CMakeList ...

  10. 100个命令Linux常用命令大全

    Linux常用命令大全100条: 1,echo "aa" > test.txt 和 echo "bb" >> test.txt//>将原 ...