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. Array与ArrayBuffer

    一.概述 二:Array使用 1.建立方式三种(数组里可以有不同的数据类型) 2.Array的简单使用 三:ArrayBuffer的简单使用 1.ArrayBuffer建立 导包 2.添加元素(+=) ...

  2. cocos2d-x mac os启动 android helloworld

    工具环境: mac os, jdk, Android Studio, cocos2d-x-3.13.1, ant, android-ndk. 解压coco2d-x后,根目录下有 setup.py, 命 ...

  3. jquery中.attr('value')和.val()的区别

    .val() 能够取到 针对text,hidden可输入的文本框的value值. 而 .attr('value') 可以取到html元素中所设置的属性 value的值,不能获取动态的如input ty ...

  4. 利用AdaBoost元算法提高分类性能

    当做重要决定时,大家可能都会吸取多个专家而不只是一个人的意见.机器学习处理问题时又何尝不是如此?这就是元算法背后的思路.元算法是对其他算法进行组合的一种方式. 自举汇聚法(bootstrap aggr ...

  5. 百度地图API-自定义图标覆盖物

    地图覆盖物 Overlay:覆盖物的抽象基类,所有的覆盖物均继承此类的方法. Marker:标注表示地图上的点,可自定义标注的图标. Label:表示地图上的文本标注,您可以自定义标注的文本内容. P ...

  6. Python开发程序:FTP程序

    作业:开发一个支持多用户在线的FTP程序 要求: 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp se ...

  7. 打开VS调试不进入开发的网站直接跳转到主页

    重启了熟悉有卸载IE11的,搞了好几个小时 最后把电脑管家里的锁定主页打开就好了! 很久之后  我再锁上  也没有这问题了

  8. Matlab的XTickLabel中数值带下标

    %axis为'x'或'y',分别表示更改x或y刻度 %ticks是字符cell function settick(axis,ticks) n=length(ticks); tkx=get(gca,'X ...

  9. jQ HTML之捕获 设置 元素添加与删除

    捕获 设置修改 添加元素 删除元素

  10. 夺命雷公狗-----React---7--组建的状态props和state

    props:组建初始要渲染的数据,他是不可以改变的 state:组建状态发生改变,调用render重新渲染数据 我们来写一个例子: <!DOCTYPE html> <html lan ...