爱编程
二、git入门 git返回上一个版本 git reset --hard head^
2015-2-16 Jessie


1.git log 可以看见提交的版本,每个版本有一个commit id,是通过sha1计算出的数字,与SVN中递增(1 ,2 ,3)不一样。







2.commit提交了几次,可以通过git reset --hard head^ 退回到上一个版本。上一个版本是head^,上上个版本是head^,前一百个版本是head~100。







3.再用git log查看,最后一次提交的记录已经不见了。如果想退回到最后一次提交的文件内容,只要对应的commit id 可以找到,就可以恢复到最后一次的内容,如果commit id 是“49e88678f852dd00e7ed7c8637d8e3cac50871c5“,可以用命令: git reset --hard 49e88678f852dd00e7ed7c8637d8e3cac50871c5


可以理解成head是一个指针,指向某一个commit id对应的版本内容,然后更新当前工作区的内容。







4.如果找不到对应的commit id,可以使用git reflog,找到commit id,如图下图操作



clipboard.png














总结:



①head指向的版本是当前版本,因此git需要在历史版本之间穿梭,使用git reset --hard commit_id。



穿梭前用git log 查看提交历史,以便确定要回退到那个版本。



③要重返未来,用git reflog查看历史命令,以便回退到未来的版本。