git远程仓库代码回退

有时候项目运行后,发现修改产生了新的问题,这时候我们就要回退代码。如果修改的代码很少的话,可以手动修改回来,有时候修改了很多内容,甚至忘了修改了哪些内容,这时候就需要用到reset命令了,其实git提交的内容并不能真的回退,只是用以前的代码覆盖现在的代码,这样我们就不需要手动覆盖错误的代码了

[root@localhost gitdemo]# echo 'hello world'>hello.txt 
[root@localhost gitdemo]# git ci -am '提交一次错误的代码'
[master b00ef94] 提交一次错误的代码
 1 file changed, 1 insertion(+), 2 deletions(-)
[root@localhost gitdemo]# git push


我们提交了一次有问题的代码,并push到远端了,现在我们要回退回正确的代码


显示最近的n此提交

[root@localhost gitdemo]# git log -3
commit b00ef94a4841e59f60a3cd2e112bad4df6029d13
Author: chao.zeng <576178421@qq.com>
Date:   Tue Jun 14 15:39:06 2016 +0800


    提交一次错误的代码


commit d0ad0126b17518a61d85e8f1ec70c47a16a45532
Author: chao.zeng <576178421@qq.com>
Date:   Tue Jun 14 15:33:03 2016 +0800


    tt


commit 4a8762c8c911251f513a4d0c008fd7fa75fa54b5
Author: chao.zeng <576178421@qq.com>
Date:   Tue Jun 14 09:06:40 2016 +0800


    add aaa

回退到上一次提交,即 commit d0ad0126b17518a61d85e8f1ec70c47a16a45532

回退代码用reset ,--hard会完全回退,包括头指针,暂存区,和工作区,因为我们要将工作区代码回退到以前,所以使用--hard,d0ad是上次的提交号

[root@localhost gitdemo]# git reset --hard d0ad
HEAD 现在位于 d0ad012 tt
[root@localhost gitdemo]# cat hello.txt 
hello
world

之前hello.txt的内容是一行'hello world',现在变成两行了


恢复头指针

[root@localhost gitdemo]# git reset --soft b00e
[root@localhost gitdemo]# git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。
要提交的变更:
  (使用 "git reset HEAD <文件>..." 以取消暂存)


修改:     hello.txt

这样我们又回到了最新的提交,即头指针指到最新的提交,但是工作区的内容已经回退了(如果头指针不是指向最新的提交,是无法push的)

提交


[root@localhost gitdemo]# git commit -am '回退到正确的代码'
[master d2fd6d2] 回退到正确的代码
 1 file changed, 2 insertions(+), 1 deletion(-)
[root@localhost gitdemo]# git push
Username for 'https://git.coding.net': xiangyi
Password for 'https://xiangyi@git.coding.net': 
对象计数中: 3, 完成.
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 313 bytes | 0 bytes/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
To https://git.coding.net/xiangyi/gittest.git
   b00ef94..d2fd6d2  master -> master
[root@localhost gitdemo]# cat hello.txt 
hello
world
[root@localhost gitdemo]# 


[root@localhost gitdemo]# git log -3
commit d2fd6d2178f11a1a90622219e4e45543a6d44820
Author: chao.zeng <576178421@qq.com>
Date:   Tue Jun 14 16:13:47 2016 +0800


    回退到正确的代码


commit b00ef94a4841e59f60a3cd2e112bad4df6029d13
Author: chao.zeng <576178421@qq.com>
Date:   Tue Jun 14 15:39:06 2016 +0800


    提交一次错误的代码


commit d0ad0126b17518a61d85e8f1ec70c47a16a45532
Author: chao.zeng <576178421@qq.com>
Date:   Tue Jun 14 15:33:03 2016 +0800


    tt
[root@localhost gitdemo]# 

从log可以看出,代码不是真的回退了,只是用之前的代码再执行了一次提交操作并push到远程仓库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值