Discuss / Git / 内容理解疑问

内容理解疑问

Topic source

过客

#1 Created at ... [Delete] [Delete and Lock User]

本篇第 3、4 行的描述中,我有两个疑问:

1.我要开发一个新功能,假如是我一个人写,我在本地新建一个feature分支,或者就直接在dev开发分支上开发,我每天都commit提交一次,又没有推送到远程,我提交的代码跟别人一点关系都没有,何来影响其他人干活的说法呢?

2.我在本地写的代码,只要没推送到远程做个备份,那在本地的代码,无论是在工作区,暂存区,还是在本地仓库中,它丢失的风险应该是一样的呀,为什么说等功能全部开发完再一次性提交,会存在丢失每天的进度的巨大风险呢?

廖雪峰老师,以上是我在本篇文章的中的两个疑问,2022年了,您还能为我解答吗?

Tatoue-moi

#2 Created at ... [Delete] [Delete and Lock User]

你好呀,我发表一下我的浅见:

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 个疑问

Simple

#3 Created at ... [Delete] [Delete and Lock User]

分支不是解决分工问题的,是解决质量问题的。

比如:一个任务,两个人做。

其一,开两个分支,谁的分支先上来,我合并谁的。

其二,两个分支,如果其中一个人的分支有后期bug,那么我可以切换到另一个人的分支上。

其三,同一个人开两个分支,就是两个方案。

引之旁逸

#4 Created at ... [Delete] [Delete and Lock User]

1.文章里说的提交指的就是推送到远程库吧,不是完整功能的代码会造成别人使用过程中出现问题

2.文章建议在远程库创建自己的功能开发分支,将每天的修改提交到远程分支。修改保存在本地丢失风险大呀

哈哈,我明白你为什么有这种疑问了,3,4行说的是在没有分支的情况下,也就是考虑只有一个分支的情况。所有人都在一个分支上开发的

日躔月离

#6 Created at ... [Delete] [Delete and Lock User]

在'创建与合并分支'一节中提到了'因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。'.

说明你业务不熟


  • 1

Reply