前两天使用github开发遇到一个问题解决过程中加深了对git的理解,在这里记录一下
项目组有一个开源项目A,大家都fork了一份A'到自己的github开发测试后提交pull request,合并到master后上线一切嘟很正常。
但由于会同时跟进多个功能点需要改多个文件M,N,并在开发完分开提交就选用了多分支开发开发(branch)的方法。
在A’主干修改嘚M文件代码提交了pr,但因为依赖未上线一直处于未合并未上线状态。
此时需要修改功能N就在A'的基础上新建多分支开发functionN
,开发后提交時发现竟然有M的代码。无论怎么同步A的代码都不能提交
这个问题其实是创建functionN
多分支开发的时机不对引起的,这个多分支开发创建于M文件合并之后带有M的代码。只要在那之前的时间轴节点创建多分支开发就可以解决问题了
注意:在操作前备份需要修改的代码。
# 4. 将文件內容同步为过去的版本 # 5. 创建工作多分支开发 # 6. 切换到工作多分支开发开始写代码
遇到这个问题,其实是自己对git工作流(workflow)不够了解导致創建functionN
多分支开发时带有M的代码。归纳本次的git工作流如下图: