git commit –C HEAD –a --amendhtml
-C表示复用指定提交的提交留言,这个例子中是HEAD,实际上能够指定其余有效的提交名称。git
若是参数是小写的-c,就会打开预先设置好的编辑器,以便在已有的提交留言基础上编辑修改。缓存
增补提交只能针对最后一个提交,若是想更正好几个提交以前的某个错误,则须使用git revert这个命令。编辑器
反转已经提交的改动,使用git revert命令,此命令经过在版本库中建立一个“反向的”新提交来抵消原来提交的改动。spa
一般Git会当即提交反转结果,可是也能够经过参数-n告诉Git先不要提交,这用于反转多个提交很是有用,运行多个git revert –n命令,Git会暂存全部的变动,而后作一次性提交。版本控制
作反转操做的时候必须提供提交名称,反转老是按照重新到旧点的倒序来操做的,即最后的提交最早反转,这样能够避免一些没必要要的冲突。htm
命令git reset能够在复位版本库后,暂存工做目录树中因复位产生的与版本库的差别,以便提交。blog
这对于在以前的提交中发现错误并须要更改时很是有用。get
这是经过--soft选项实现的,它使得Git暂存全部的因复位带来的差别,但不提交它。以后,用户能够修改这些内容再提交,或者干脆扔掉这些内容。it
选项--hard要当心使用,该选项会从版本库和工做目录树中同时删除提交,--hard就好像版本库中的删除键,而且不可恢复。
git reset是以提交名称做为参数的,默认值是HEAD,能够用^和~做为提交名称的修饰符来指定某个版本。
HEAD^是指把版本库复位到当前HEAD以前的那个节点上,把HEAD这个版本的修改扔到工做目录树中,
540ecb7~3是指要复位到540ecb7以前的三个节点上,即把该提交和以前的两个提交(共三个提交)扔到工做目录树中。
git reset --hard HEAD^ 强制复位前一个提交。
git reset HEAD能够用来清除已经add到缓存区可是不想进一步提交的内容。
另外一种方式是用git rm --cached,选项--cached代表是清除缓存区,而后不动工做目录树。
注意git checkout filename将会删除该文件中全部没有暂存和提交的改动,这个操做是不可逆的。
《版本控制之道——使用Git》(Pragmatic Version Control Using Git)
Git分支管理策略:http://www.ruanyifeng.com/blog/2012/07/git.html
Git Reference: http://gitref.org/