【git回滚后,同事pull拉不到最新回滚代码-解决方案】

5 篇文章 0 订阅

git冲突回滚方案

1. 问题起因?
合并代码冲突,导致部分代码丢失了。决定回滚到昨天下班后最后一个版本。
使用命令
git reset --hard commit_id
git push --hard

2. 接着让同事们拉代码。。。。
发现提示是最新代码但是拉不下来。需要使用下面的代码:我没有进行测试,如果你测试了麻烦给留言哈。。。。

git reset --hard origin/master

我们用的下面的方法:
重新clone整个代码下来。。。。。
3. 回来复盘发现这个问题,上网找到了答案。

猜测你是用的 git reset 回滚。假设回滚前是 N,回滚后变成 N-3,
那么你所有同事都是 N,都比 N-3 要新,所以当然拉不下来。

所以要么大家都 git reset,要么大家都重新拉整个库。

下次建议用 git revert,创建“回滚分支”,这样就能 git pull 了。

命令区别:

git reset和git revert是两种Git命令,用于撤销或回退提交的更改,但它们具有不同的工作原理和效果。

git reset: 这个命令用于将当前分支的HEAD指针和索引重置到指定的提交。使用git reset会丢弃一些或所有未提交的修改,并移动分支指针。

--soft模式:只重置HEAD指针,保留所有修改在工作目录中,将这些修改标记为未暂存状态。
--mixed模式(默认):重置HEAD指针和索引,保留所有修改在工作目录中,将这些修改标记为未暂存状态。
--hard模式:完全重置HEAD指针、索引和工作目录,丢弃所有修改。
git revert: 这个命令用于创建一个新的提交,以撤销指定的提交。使用git revert会保留历史记录,并生成撤销更改所需的新提交。每个提交都会在历史记录中出现,并将更改反转回去。

git revert <commit>: 撤销指定的提交,并创建一个新的提交来恢复更改。
简而言之:

git reset是通过直接修改分支指针和索引来撤销提交,较为强力和危险,可能会丢失未提交的修改历史。
git revert是通过创建新的提交来撤销指定提交,更安全,能够保留完整的修改历史。
根据具体需求和场景,选择适合的命令来回退或撤销Git提交。

解决方案来自:
https://segmentfault.com/q/1010000040661545?bd_source_light=4746641

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值