这种git问题怎么解决?

如果dev分支里面部分功能要上生产,该怎么做?比如dev里有ACD这四个功能,A还在测试,生产里有CD这几个功能,然后目前要上线B功能,该怎么把B功能合到生产分支里?
首先不能把dev全部合到生产分支,也不能把开发B功能的分支合到生产分支吧?因为开发B功能的分支是由dev拉出来的,也会有A功能的代码。

阅读 1.2k
4 个回答

主要使用git cherry-pick命令处理。

将 git 切换到生产分支,使用git cherry-pick commit_hash命令将功能B涉及到的commit复制到生产分支上。

Ps:如果git的图形操作界面是中文版的,cherry-pick会被翻译为优选

  1. 首先你们应该确保 ABCD 分属 4 个不同的分支
  2. 然后你们已经部署了 CD,那么我必须假设生产里虽然不是 master/release,也是一个独立的分支
  3. 那么只要把 A 合进去就好了
  4. 将来发版的时候再把所有分支都合进去,生产环境切回 master

如果你们前两步没做好,那么后面就都很难谈。

先用git log命令来找这个哈希值。
然后切生产分支:

git checkout production_branch_name

用git cherry-pick命令把B功能的提交到生产分支

git cherry-pick commit_hash_of_B

然后如果有冲突的话解决冲突,最后测试一下这个功能在生产环境里有没问题,最后推送

git push origin production_branch_name
新手上路,请多包涵
  1. ABCD...每个需求都可以从pro切个新分支ABCD去开发,pro分支git merge ABCD 一步到位
  2. 分支太多记不住,腾讯文档建个表格记录一下每个分支对应的发布版本的内容
  3. 上线完的需求就把分支给删掉
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题