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
......
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:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
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
(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 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---------------------------合并工具