1、版本回退
返回上个版本,返回后git log命令无法找到返回前版本
$ git reset –hard HEAD^
记录每一次命令,通过此命令找到返回前命令的commit id
$ git reflog
命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销
$ git checkout – readme.txt
这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区:
$ git reset HEAD readme.txt
2、工作区与暂存区
工作区(work dict)和暂存区(stage)的比较
git diff
暂存区(stage)和分支(master)的比较
git diff –cached
3、分支
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout -b name
合并某分支到当前分支:git merge name
删除分支:git branch -d name
查看分支合并图: git log –graph –pretty=oneline –abbrev-commit
4、标签
命令git tag tagname用于新建一个标签,默认为HEAD,也可以指定一个commit id;
命令git tag -a tagname -m “blablabla…”可以指定标签信息;
命令git tag可以查看所有标签。
命令git push origin tagname可以推送一个本地标签;
命令git push origin –tags可以推送全部未推送过的本地标签;
命令git tag -d tagname可以删除一个本地标签;
命令git push origin :refs/tags/tagname可以删除一个远程标签。