1.删除远程tag或者branch

git push origin --delete (tagName)/(brachName).

例如:删除远程2.1branch:git push origin --delette 2.1

2.检出某次commit时的代码(通过commit index检出)

git checkout commit的SHA1值

例如:git checkout f9e08fd76146bfc7cc45a4c7e27244591069c2cc

3.从某个commit点新建branch

git branch new_branch_name commit的SHA1值

例如:git branch new_branch_name f9e08fd76146bfc7cc45a4c7e27244591069c2cc

4.强制删除远程的某次commit

git reset --hard HEAD~6 删除6次commit信息

git push origin HEAD --force

如何删除远程分支上的Tag

git tag -d qfe-20150831-v040412 

git push origin :refs/tags/qfe-20150831-v040412

下载远程所有的分支

git fetch --all

查看本地分支

git status

合并master分支到本地分支

git pull origin master

取消commit

git checkout -- filename

reset命令有3种方式:

    git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息

    git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可

    git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

以下是一些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  

(7) 回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit 此方法可以回滚某个文件的提交

git revert HEAD 

目录回滚

  • git checkout file1 (回滚单个文件)

  • git checkout file1 file2 ... fileN (一次回滚多个文件,中间用空格隔开即可)

  • git checkout . (直接回滚当前目录一下的所有working tree内的修改,会递归扫描当前目录下的所有子目录)

比较数据

git diff 

如果想要比较最新提交和缓存区内的文件,使用 –cached flag。

$ git diff --cached
$ git diff --cached index.html