使用git reset回退版本要注意的问题

1.git无疑使当下最强大的版本控制工具,git最大的特色是他的分支开发。有分支开发就少不了合并和解决冲突,git对于新手,尤其在多人开发的情况下,很容易造成代码被覆盖,其原因大多数是在合并分支的情况下发生的,当出现问题的时候回退版本就成了至关重要的操作。

2.git reset的使用

.git reset
可用来回退代码版本,在使用此命令之前我们必须了解几个概念。
head
指向当前版本顶端最近提交的指针
Index
index 也被称做staging area区,它是指向暂存区的指针
Working Directory
代表你当前操作的文件集合
git reset head – filename可以将不小心添加到暂存区的操作,撤销。

git reset --soft sha字符串
只会改变head指针的指向,不会修改index和working Directory内容
git reset --mixed sha字符串
是reset的默认参数,会将head区和index区匹配,而不会修改working Directory的内容
git reset --hard sha字符串(即sha生成的字符串)
会将head,和index,working Directory三个同步,当前修改的数据会消失,如果想找回当前数据只能考

回退分支后需要推送至远程仓库
git push -f origin 分支名

注意这在单人回退git版本没有问题。
但是如果,有多个人检出了相同的本地分支,那么在强制git push后,他们再提交,push,远端的分支依然存在被覆盖的风险(回退失败)。所以在多人保存有相同的分支的情况下,

一人先执行回退
1.git reset --hard sha字符串
以gitlab的sha字符串为例
在这里插入图片描述
2.git push -f origin 分支名
3.通知团队其他人,让他们删除本地对应的分支
git branch -D 分支名 或 git branch -d 分支名,删除后 git pull 下拉取远端最新的分支版本,git checkout 分支名。

回退完毕,git 回退也有风险,大家使用需谨慎。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值