撤销提交
    git reset –hard HEAD~1
修改提交
    git commit --amend
切换分支
    git checkout branckname
git fetch与pull
git pull=git fetch +git merge
cherry-pick
把某个分支的提交复制到另一个分支
rebase 和 merge
rebase是将当前开发分支(develop)的提交继承到主生产分支(origin master)上,并将当前分支作为主分支,并丢弃开发分支之前的提交。

git的HEAD,索引,工作树
- HEAD 当前分支最后一次提交的指针
 - 索引 是个在 /.git/index,单一的、庞大的二进制文件,该文件列出了当前分支中所有文件的 SHA1 检验和、时间戳和文件名,它不是个带有文件副本的目录。
 - 工作树
  源文件目录
    
git stash
 - 有些修改不想提交,但又不想看到,或者夹杂在下次提交中,就可以用git stash存储在暂存区,下次需要可以再拿出来。
 - 一些常用命令
    
- 提交到暂存区
        
git stash - 从暂存区获取
        
git stash pop - 查看现有到stash
        
git stash list - 删除stash
        
git stash drop STASH_NAME - 从stash创建分支
        
git stash branch BRANCH_NAME 
 - 提交到暂存区