当前位置:   article > 正文

【git回滚后,同事pull拉不到最新回滚代码-解决方案】_tortoisegit版本回退后为什么其他人拉代码没有变化

tortoisegit版本回退后为什么其他人拉代码没有变化

git冲突回滚方案

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

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

git reset --hard origin/master
  • 1

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

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

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

下次建议用 git revert,创建“回滚分支”,这样就能 git pull 了。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

命令区别:

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提交。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/407555
推荐阅读
相关标签
  

闽ICP备14008679号