背景:公司项目存在release和master分支,一直是release合并到master分支;由于历史总总原因导致release和master分支内容相差很大。某个夜晚,leader悄悄改了master分支的内容(不走合并流程),然后通知我把master的最新内容合并到release。合并发现除了leader提交的内容外还有很几十个文件修改,为了减低影响,决定将release内容重置为跟master内容一致(因为master分支是稳定运行的),故有了这次操作。
注意点:
1.先备份release分支
2.通知所有团队成员,确保release没有在使用,或已将release所有内容到合并到master分支了
3.更改完成后通知成员,先删除本地release,从远程release重新检出(为什么删除?防止与本地分支发生冲突)
重置有两种方案:
目前两种方案都实践过,暂时不知道有啥区别(提交历史和内容都一致),有知道的大神可以评论区留言。推荐第一种方案,比较正式,没有涉及删除远程分支。
方案一:
使用 git reset --hard master命令重置提交历史和内容
1.git checkout master
2.git pull master
3.git checkout release
4.git reset --hard master
5.git push origin release --force
方案二:
先删除release分支,从master分支新建release
1.git branch -d release
2.git push origin --delete release
3.git checkout master
4.git checkout -b release
5.git push origin release