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. Centos7 安装 nodejs

    https://nodejs.org/en/download/package-manager/ 设置node v4的源 curl --silent --location https://rpm.nod ...

  2. 【Composer】实战操作二:自己创建composer包并提交

    大纲 创建自己的composer库 提交到指定平台 测试安装自己的库 设置composer平台自动更新 如何方便测试自己开发的库 开始动手 创建自己的composer库 个人博客后台有一部分是关于统计 ...

  3. Git command line

    # Pull the repo from master git pull # Create branch for myself in local git branch john/jenkins_cod ...

  4. cookbook学习第二弹

    1.5怎样实现一个按优先级排序的队列?并且在这个队列上面每次pop操作总是返回优先级最高的那个元素 带有双下划线的方法,会在需要被调用的位置自动被调用 带有单下划线的变量是私有变量 下面利用类heap ...

  5. jsp中frameset frame不显示页面

    今天玩frameset 的时候,无论我怎么改,页面死活不显示出来,网上找了很多答案,各种复制都不行,后来终于找到答案了,在使用frameset 的时候,不能将frameset 的内容放在body标签里 ...

  6. java线程生命周期及其对应方法

    http://blog.sina.com.cn/s/blog_a8aa82cc0101ktrm.html http://wenku.baidu.com/view/c242df69011ca300a6c ...

  7. ls 只显示目录

    只显示目录: ls -d */ 在实际应用中,我们有时需要仅列出目录,下面是 4 种不同的方法. 1. 利用 ls 命令的 -d 选项: $ ls -d */ 2. 利用 ls 命令的 -F 选项: ...

  8. linux常用操作指令

    Linux常用操作指令: 常用指令 ls        显示文件或目录 -l           列出文件详细信息l(list) -a          列出当前目录下所有文件及目录,包括隐藏的a(a ...

  9. 大商创开通用户和店铺 sql追踪

    添加用户(账号:wmy123 ,密码:wzd222,id:69)INSERT INTO `dsc1`.`dsc_users` (user_name,mobile_phone,email,passwor ...

  10. MyBatis操作指南-搭建项目基础环境(基于Java API)含log4j2配置