git 分支移除同事大量不需要的代码

45 阅读1分钟

1. 问题描述

有时同时和同事在 Develop 分支上开发内容,此时已经将 dev 分支合并到 production 分支上了,但是投产时发现自己的代码不需要上线了,而同事的代码需要投产,但是每个人的代码量都很大,如果手动粘贴复制的话可能得得熬夜搞了,因此需要快速的解决这个问题,才能避免投产问题。

2. 解决方案

2.1 从源头上入手

一般而言,需要这么几个分支:dev、prod、dev_mine、dev_colleague1、dev_colleague2...,当要测试的时候,将自己的分支合并到 dev,然后打包 dev 分支,正常情况下将 dev 合并到 prod 分支;如果发生意外情况,那么此时只需要将同事的分支合并到 prod 分支。

2.2 cherry-pick

  1. 切换到公共分支

git checkout shared-branch

  1. 为同事创建一个新分支

git checkout -b colleague-changes

  1. 回退到原始分支

git reset --hard <commit-hash>

  1. cherry-pick 同事分支

git log shared-branch

git cherry-pick <colleague-commit-hash>

  1. 将同事分支合并到 prod

git checkout production

git merge colleague-changes

2.3 revert commits

git log --author="Your Name"

git revert <commit-hash>

git push origin production