git commit 将当前在index中变化的内容提交到仓库(repository)中 语法:
git commit [-a | --interactive] [-s] [-v] [-u] [--amend] [(-c | -C) ] [-F | -m ] [--allow-empty] [--no-verify] [-e] [--author=] [--cleanup=] [--] [[-i | -o ]…]
git-reset 重置当前HEAD到指定的状态 适合与你发现刚才作的一些操作是错误的,要Undo一些操作 语法:
git reset [--mixed | --soft | --hard | --merge] [-q] []
git reset [-q] [] [--] …
</pre>
--soft,表示不变更working tree和index
--hard,表示working tree和index一同变更
例子:
Undo一个commit再Redo
$ git commit ...
$ git reset --soft HEAD^ 回退到上一次commit,并不改变workingtree和index
编辑一些内容
$ git commit -a -c ORIG_HEAD 再次按照原来的HEAD的注释提交,-c表示使用原来的commit时候的注释
永久的回退
$ git commit ...
$ git reset --hard HEAD~3 //永久删掉HEAD,HEAD^和HEAD~2三个版本
git checkout 切换当前分支
git checkout 切换到分支
git checkout -b 建立新分支并切换上去
git checkout -b v2 从某一个start point开始创建新分支,并切换上去
git checkout v2.3 将当前HEAD从现有分支上解除,直接指向新的tag版本 1.5以后支持。
例子:
切换分支到master,将Makefile文件回退两个版本,错误删除了hello.c,再从index中恢复
$ git checkout master (1)
$ git checkout master~2 Makefile (2)
$ rm -f hello.c
$ git checkout -- hello.c (3)