内容理解疑问
Topic source你好呀,我发表一下我的浅见:
1. “等功能全部开发完再一次性提交”并不是指一次性推到远程仓库,而是指一次性合并到远程 master 分支
2. 在日常项目开发中,远程 master 分支是最新的、稳定的、经过测试验证的分支,所有的其他分支应该从 master 分支 fetch 而来,这样才能保证基础代码的正确性
3. 做为开发者,在项目开发中会被分配到属于自己的任务,比如开发一个新的接口。那么为了不影响别人的开发,自己应该从远程 master 分支 fetch 一个分支到自己本地(比如叫做 feat/new-interface),自己在 feat/new-interface 分支上进行开发。关键的来了,feat/new-interface 分支不只是本地的分支,你还可以把 feat/new-interface 分支推送到远程仓库,而且也应该这么做。不要当心别人会乱动你的 feat/new-interface 远程分支,因为这个任务是分配给你自己做的,如果有其他情况那得另说
4. 你在本地的 feat/new-interface 分支开发之后,add、commit,然后 push 到远程 feat/new-interface 分支,这样是一个正确的开发流程。这样也可以保证即使你的本地磁盘损坏了,本地 feat/new-interface 分支消失了,也还可以重新从远程拉取 feat/new-interface 分支,自己的开发工作不会白费
5. 当你开发工作完成之后,你可以申请将远程 feat/new-interface 分支合并到 master 分支,这样自己的开发工作才告一段落
不知道以上的回答能否解决你的 2 个疑问
分支不是解决分工问题的,是解决质量问题的。
比如:一个任务,两个人做。
其一,开两个分支,谁的分支先上来,我合并谁的。
其二,两个分支,如果其中一个人的分支有后期bug,那么我可以切换到另一个人的分支上。
其三,同一个人开两个分支,就是两个方案。
- 1
过客
本篇第 3、4 行的描述中,我有两个疑问:
1.我要开发一个新功能,假如是我一个人写,我在本地新建一个feature分支,或者就直接在dev开发分支上开发,我每天都commit提交一次,又没有推送到远程,我提交的代码跟别人一点关系都没有,何来影响其他人干活的说法呢?
2.我在本地写的代码,只要没推送到远程做个备份,那在本地的代码,无论是在工作区,暂存区,还是在本地仓库中,它丢失的风险应该是一样的呀,为什么说等功能全部开发完再一次性提交,会存在丢失每天的进度的巨大风险呢?
廖雪峰老师,以上是我在本篇文章的中的两个疑问,2022年了,您还能为我解答吗?