标签:git
新建一个仓库,生成3次提交,每次提交只是简单的在user.txt文件后追加一个数字
之前已经介绍过git reset --hard是连同工作区一起彻底回退,后面的接的参数为HEAD~2,表示回退2次的提交,也可以用HEAD^^,还可以使用哈希值(SHA1),哈希值可以不全写,只要能区分不同提交就可以。
现在我们将NO.2和NO.3的提交合并一起再提交,这时使用git reset就可以了,保留工作区的内容。
修改结果与之前一样,但log的结果已经变化了
如果我们错误操作连同工作区也回退了,就是修改都没了,也有办法回退操作
查看到之前执行过的操作,可以查看到前一个操作所在的提交(commit)的哈希值ee78fd6
使用git reset --hard执行回退,--hard工作区也一起回退
如果的把错误的提交更新的服务器,就不能使用git reset回退了
因为之前没有在服务器上建立远程仓库,先克隆一份裸的版本,再复制到服务器。因为是本地模拟服务器,所以直接克隆到相应目录
将user.txt修改成以上所示
因为服务器的版本是本地复制的,所以本地版本没有自动将service_name@127.0.0.1:repo/sample2.git命名为origin,所以我们要设置一下以方便以后提交。
自动生成的提交说明,不修改,ctrl+x退出
这样就能回退最近一次的提交,当然也可以回退到更早以前的提交,但只回退单次提交,例如回退前一次提交HEAD^(NO.2 and NO.3 commit),那么第一次的提交HEAD(error commit)不会被回退,还会存在。不会像reset那样将该提交以后的版本都一起回退。
使用git diff查看修改的详情,可以看出只是将要回退的提交的删除和添加的内容做了一次反操作,所以revert只回退单独一次提交的结果
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:git
原文地址:http://blog.csdn.net/qazqwdxz/article/details/47376963