场景:存在远程开发分支dev和本地开发分支feature-xxx,复现流程:
- 切换到feature-xxx进行开发,并进行本地提交;
- 切换回dev分支,
git pull
拉取远程代码;- 切换到feature-xxx分支,
git merge dev
,如有冲突,合并冲突后提交;- 切换回dev分支,
git merge feature-xxx
,再push到远程分支。存在问题: 在第1,2步时dev分支进行的修改丢失。
问题为第三步:将dev分支合并到本地分支时,由于以本地分支为主导,git自动合并时会以本地分支为准。 因此,dev分支的修改就被丢弃了。
(待实践,我的疑问:1.如果本地分支无修改,git merge dev时不会以dev分支的最新修改为准吗?2.还有一个可能是与这个无关,我手滑使用了我的提交)
正确的做法
- 其他人负责的代码模块无冲突时,直接拉取dev分支在本地开发。(not good)
- 拉取dev后,checkout到一个新分支feature-xxx,在新分支开发完毕后,切换到dev,
git merge feature-xxx
。
感觉自己对git基础的理解还有点偏差,而且日常开发使用不规范,有空要好好看看文档,再动手实践一下。