git的一些常用方法

时间:2022-06-08 00:30:10

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---------------------------合并工具