背景
作为一个学习计算机的学生,我们在使用git的过程中往往是自己在gitee / github上自己创建一个仓库,自己创建分支,自己在自己的分支进行操作。整个流程比较统一:从关联自己的远程仓库,到add更改,提交commit,最后Push自己的更改到远程仓库一气呵成。
我将从一个后端实习生的身份讲解。
小需求的到来
作为实习生,在刚刚接触到自己的一个小需求的时候,这个时候就需要和你的其他的前辈或者同辈一同协作开发,这个时候需要考虑的事情就多了起来。让我为初入这种工作场景的小伙伴一起分享我自己的经历(大佬勿喷)。
项目的分支
一般来说,项目的分支一般会有以下几种类型的分支。
- 开发分支。这个分支是当系统的功能需要进行开发的时候使用的分支。
- 测试分支。用于测试的分支。
- 生产分支。生产环境使用的,需要将其打包部署的分支。
作为一个实习生,我会详细的介绍在开发分支中的工作流程。
开发分支
比如一个小组拿到了一个功能开发的需求,这个需求被拆分为了多个子任务,需要小组内的所有人一同合作开发。对于这个功能开发的负责人。他会从仓库的master分支创建一个功能开发分支,一般命名为feature/functionA。这个时候,我们所有的功能开发就会基于这个分支进行。首先我们会拉取这个功能开发分支到本地。执行以下具体的命令。
git clone -b <--分支名--> <--远程仓库的地址-->
这个命令我们应该比较熟悉,但是我们最常用的应该是这个命令。
git clone <--远程仓库地址-->
第一个命令中使用了-b用于指定分支。这样的话就能直接拉取到指定的开发分支了(博主一开始没有使用,后续才发现本地没有远程的功能开发分支)。
这个时候我们的本地应该会有两个分支了。一个是本地仓库的master分支以及远程开发使feature/functionA分支。
这个时候不要慌慌张张的写完了代码就往开发分支上面push。因为一个小组内的人都会基于这个分支进行开发。所有我们需要再本地创建一个自己的功能开发分支,一般来说分支名的名称为feature/姓名_functionA。
git checkout -b <--分支名-->
这个时候你的本地就会有有三个分支了,分别是master,feature/functionA,feature/姓名_functionA。这三个分支里我们主要使用的就是feature/姓名_functionA分支进行开发。注意一下,在我们创建自己的分支后,记得切换到自己的分支进行开发。由于上面使用了-b,所以在创建分支的时候会自动切换到你自己创建的feature/姓名_functionA分支。如果没有使用-b的话可以使用这个命令
git switch <--分支名-->
这里其实git checkout -b <--分支名-->也有切换分支的作用,但是还是推荐使用git switch <--分支名-->进行分支切换的操作,更加的语义化。
好了,现在你可以兴高采烈的对代码进行开发了。
好了,你现在已经将这个功能分支中分配给你的一个task给完成了。
但是你别急,在公司中,往往会对提交的commit的格式进行规范化。比如git commit -m <type>(<STORY/REQ>): <description>。其中的type常见的有feat,fix等。当然具体的代码提交规范还得根据自己的公司提出并实施的规范进行。
好了你已经执行了以下的操作了进行提交了。
git add .
git commit -m "feat/(xxx-111): 我的第一次commit"
这个时候别慌张push代码。因为是协同配合,要是我们对同一个文件进行修改了,在后续的合并中,就会出现冲突的情况。就是你和他同时修改了一个文件。但是你们都推送到同一个自己的分支上了,并且他修改的代码已经合并到远程开发分支feature/functionA上了,最后我发起发起合并请求的时候,我的代码中没有他已经修改过的内容就会出现冲突了。
我们可以现在可以先获取到远程开发分支feature/functionA的最新更改到本地的feature/functionA分支上。我习惯使用fetch进行操作,这里就以fetch进行举例了。注意,当前我们所处的分支是自己的开发分支feature/姓名_functionA。我们使用以下的命令
git fetch origin feature/functionA
使用完命令后,我们本地的feature/functionA分支就会获取到远程开发分支的变更信息,包括commit,代码更新等。这个时候我们需要将更新合并到自己的本地的开发分支上feature/姓名_functionA。我们所处的分支依旧是自己的分支。我们使用以下的命令。
git merge origin/feature/functionA
大功告成。我们可以进行本地操作的最后一步了。但是在执行最后一步的时候,我们在首次向远程仓库push的时候需要指定一下分支,这里指定的是你自己的开发分支。
git push origin feature/姓名_functionA
当然还有远程仓库的操作,我们需要 create merge request,指定代码评审人员。通过评审后,自己的开发分支feature/姓名_functionA才会合并到feature/functionA中。
4872

被折叠的 条评论
为什么被折叠?



