1、撤销add但未commit的文件

git rm -r --cached path/file

2、git 撤销commit:

2.1)、git log-显示提交的历史
commit ee50348120302b19318ab6a564d4092dd87a85ef
Author: ShichaoXu <gudujianjsk@gmail.com>
Date:   Mon Jun 3 15:18:16 2013 +0800
     support for printf
commit e7a5e492c742a7b68c07f124edd4b713122c0666
Author: ShichaoXu <gudujianjsk@gmail.com>
Date:   Tue May 7 15:44:11 2013 +0800
......

   
2.2)、git reset --hard e7a5e492c742a7b68c07f124edd4b713122c0666 
    执行该步后显示如下

  •   HEAD is now at e7a5e49 del file lib/2440slib.s init/2440init.s

此时正常回到git commit    "support for printf" 之前的状态!

 
–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标签页里找到
 
以下是一些reset的示例:
(1) 回退所有内容到上一个版本  
git reset HEAD^  
(2) 回退a.py这个文件的版本到上一个版本  
git reset HEAD^ a.py  
(3) 向前回退到第3个版本  
git reset –soft HEAD~3  
(4) 将本地的状态回退到和远程的一样  
git reset –hard origin/master  
(5) 回退到某个版本  
git reset 057d  
(6) 回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit  
git revert HEAD 
 
3、git提交代码的一些方法:
github的提交方式 
  git add .--------------------存储到本地 
  git commit -m 'message'-------存储时的标记(修改了哪些地方,方便下次查询) 
  git pull------------------------下载服务器代码 
  git push------------------------上传代码至服务器 
svn服务器的提交方式 
  git add .  ------------------存储到本地 
  git commit -m 'message'--------存储时的标记(修改了哪些地方,方便下次查询) 
  git svn rebase------------------下载服务器代码 
  git svn dcommit-----------------上传代码至服务器 
其他相关的git命令 
git branch-------------------查看当前属于哪个分支 
git rebase –-continue-------------------自动合并 
git checkout –b svn 新建分支名----------新建分支存储现有文件 
git checkout master----------------------将其放到master分支下,切换分支
git merge-------------------------------整合分支 
git branch -d 分支名----------------------删除分支 
git checkout + 上传的commit编号-----------将本地代码恢复到此状态 ( )
git log------------------------------------查看本地git上传日志 
git log -p app/controllers/grids_controller.rb----查看某个文件的修改历史 
git checkout d0eb6ef3afe8a377943d3cf6f1e9c320c18f6f32   app/controllers/charts_controller.rb-----------返回到这个版本的文件(重现错误) 
git diff + commit编号--------------------------查询不同代码
git remote set-url origin test@192.168.2.34:/home/city/projects/pepper/pepper/.git--------------更改访问的git仓库地址,通常当git仓库地址发生变化是,在本地可以通过这种方法
git difftool ---------------------------查看差异工具
git mergetool---------------------------合并工具

 
 
 
 
 

git的一些常用方法的更多相关文章

  1. cyclictest 简介

    1. cyclictest 简介以及安装 1.1 cyclictest 简介 cyclictest 是什么? 看名字应该就能大致猜出来它是一种 test 程序,Cyclictest的维基主页这么介绍它 ...

  2. Linux 实时性能测试工具——Cyclictest

    Cyclictest 是 rt-tests 下的一个测试工具,也是rt-tests 下使用最广泛的测试工具,一般主要用来测试使用内核的延迟,从而判断内核的实时性. 1.2 cyclictest 安装 ...

  3. 采用MQTT协议实现android消息推送(4)选fusesource-mqtt-client为客户端

    1.简介 一个java写的mqtt客户端.项目地址: https://github.com/fusesource/mqtt-client 2.引入fusesource-mqtt-client库 Fil ...

  4. Git Bash+EGit在项目中配合使用最常用方法总结(根据场景使用)

    最近在项目中使用Git进行代码管理,之前一直用SVN进行管理,现在谈一谈Git在项目中如何与EGit插件配合使用,高效同步开发. 使用过SVN一段时间的人,初识Git一定感觉很别扭,发现会遇到各种各样 ...

  5. git常用方法整理

    Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git有什么特点?简单来说就是:高端大气上档次! 初始化本地仓库 mkdir xxx cd xxx git init 创建本 ...

  6. git常用方法

    一.创建项目 git clone xx.git         克隆项目到本地 git init                     初始化本地项目,生成.git文件 二.创建分支,推送分支,合并 ...

  7. Git 初始化项目、创建合并分支、回滚等常用方法总结

    就在刚才查看资料时候, 看见一句话, 写的特别好: 当我的才华撑不起我的梦想的时候, 应该安静下来学习 配上我最喜欢动漫的一个角色: 红莲 1. Git 初始化项目 1). 创建新的知识库 echo ...

  8. 【Git】常见错误提示解决办法和常用方法

    1.添加远程仓库时提示fatal: remote origin already exists. 先删除远程仓库,再添加远程仓库 最后再push 2.修改本地文件(比如README.md)后,更新到gi ...

  9. GIT 常用方法

    代码提交顺序: conmmit(提交代码到本地仓库)   --->>>   pull(将本地仓库代码合并)  ---->>>   push(将本地合并后的代码提交到 ...

随机推荐

  1. Mininet实验 源码安装Mininet

    参考:MiniNet实验1 安装命令: sudo apt-get update sudo apt-get upgrade sudo apt-get install git(安装过git就可以忽略此步) ...

  2. P1514 引水入城

    概述 首先,这是一道好题,这道题既考查了图论的dfs知识,又考察了区间贪心问题中很典型的区间覆盖问题,着实是一道好题. 大概思路说明 我们观察到,只有第一行可以放水库,而第一行在哪里放水库的结果就是直 ...

  3. js Memoization 优化运行速度

    项目中需要用到 大计算量 耗时的js运算. Memoize 是一个优化方法 ,对耗时的递归运算,漫长的查找运算的结果进行缓存,使运行时间最小化 原理是缓存先前的结果计算值从而可以避免需要重新计算   ...

  4. CentOS 配置网络yum源

    配置网络yum源(需要保证外网开通,使用网易163提供开源镜像站) 1.下载repo文件 方法一:下载到本地windows再上传到linux服务器上: 下载地址 : http://mirrors.16 ...

  5. 淘宝开放平台Session Key有效期

    各标签session时长及RefreshToken失效时长  *Refresh失效时长为0,即该sessionkey不可刷新. 标签 授权时长 Refresh失效时长 商家后台应用 固定时长1年 0 ...

  6. Linux下安装APache

    1:在图形界面下下载apache 安装包,我下的是 httpd-2.2.9.tar.gz 源码安装包,地址是http://httpd.apache.org/download.cgi 2:用:gzip ...

  7. react input 获取/失去焦点

    <div className={ this.state.focus ? "dis_bottom_left_onfocus" : "dis_bottom_left&q ...

  8. ZeroClipboard 插件实现文本复制到剪贴板

    ZeroClipboard 的官网 点这里,github地址 点这里. 事例如下: 在引入 ZeroClipboard.js 之后, <button id="clip_button&q ...

  9. StringByAppendingPathComponent和stringByAppendingString的区别

    cyy:自我理解,不保证正确,但亲自试验确实可行:若用 stringByAppendingString  则需要手动在名称前加 “/”符号,而stringByAppendingPathComponen ...

  10. 替换所有字符串,获取url参数值

    替换所有的字符串: var newStr = str.replace(/null/g, ""); 获取url参数值 <script type="text/javas ...