【git】日常工作流程

前言

本文为使用git+sourcetree进行日常开发版本控制与多人协作的日常工作流程简介。当然在实际工作中多少会与本文所述有所冲突,但大同小异,其基本流程变化不大,希望读者自行掌控细节。

另外,对于美术资源,由于git对加锁没有比较好的支持,更科举的做法是使用perforce(p4v),详见perforce官网下载。但是对于人数不多的小型项目,使用git使可满足绝大多数需求,故本文并没提及p4v,希望有需求的读者可自行研究。

安装

在正式开始之前需要安装以下软件。

安装git

git的安装过程见笔者的另外一篇blog,git安装与配置

安装sourcetree

sourcetree直接从sourcetree官网下载安装包安装即可。

安装完成后打开sourcetree,我们可以在工具->选项菜单下设置默认的用户名和邮箱(很重要)。

sourcetree设置默认用户名

当然,针对某个具体的仓库,我们也可以设置局部的用户名。

sourcetree设置仓库局部用户名

建立仓库

建立仓库一般是开发人员进行的操作,其他角色可跳过此步骤。

这里以github为例,其他的平台大同小异。

新建git远程仓库

如上图所示,最好选中初始化一个README.md

拉取远程仓库

打开sourcetree,在New Tab页面的Clone,输入远程仓库的路径,并选好本地的存储路径,按克隆按钮即可。

添加远程仓库

除此之外,也可以使用命令行直接拉取。

1
$ git remote add origin xxx.git

之后再在sourcetree中导入拉取到本地的仓库,我们可以打开sourcetree,在New Tab页面选择Add,选好路径,即可导入仓库。

导入本地仓库

导入仓库完成后,sourcetree出现如下界面,可以看到,目前只有一个master分支。

sourcetree工作台

注意此时别忘了修改一下当前仓库的用户名和邮箱,步骤见上面sourcetree安装过程。

初始分支管理

我们使用master分支作为产品发布分支,这个时候我们需要新建一个develop分支作为开发分支。

新建分支

如图所示,我们在当前master的最新提交上右键,选择分支,出现下图。

新建分支

输入分支名develop,点击创建分支按钮即可。当develop分支创建好之后,便可看到本地多了一个分支,且已检出到该分支。但是远程分支还只有一个。

新建develop分支

此时我们需要推送develop分支到远程仓库,如图,点击推送按钮,勾选develop分支并推送即可。

新建develop分支

在个人分支工作

对于项目小组的每一位成员,建议的做法是每一个人建立一个自己的工作分支或者特性分支,当此次工作完成之后,便将该分支合并到主干分支(即develop分支)上去便可。

创建个人工作分支

首先需要更新主干分支到最新。如图所示,检出develop分支(双击,加粗即为当前已经检出的分支),点击拉取按钮。

更新主干到最新

在主干分支最新的提交上右键,选择分支选项新建一个分支。

更新主干到最新

分支推荐按照如下格式命名。

个人分支 -- p_personname_date -- p_duadua_20190819

特性分支 -- f_xxx_personname_date -- f_animation_duadua_20190819

bug分支 -- h_xxx_personname_date -- h_fixbug_duadua_20190819

创建完分支后,便可以本地分支列表中看到,此时执行一次推送,即可推送到远程分支。

个人分支

接下来便可在个人分支下进行工作,像正常的git流程一样工作即可。

工作完成测试

当在个人分支完成修改之后,需要测试当前的修改是否能运行最新的版本,所以需要将最新的develop分支合并过来,然后进行测试。

首先我们需要像之前介绍的那样将develop分支拉取到最新,然后检出个人分支,并在develop分支上右键,选择合并develop至当前分支,便可将develop分支合并过来。

个人分支

此时进行运行测试,功能没有问题的话便可对当前分支进行提交并推送到远程,然后请求合并即可。

但是这一步很有可以会出现冲突,可能最新的develop版本上有与你当前修改冲突的文件,所以在合并develop到当前分支之后需要解决冲突,解决冲突的方法可联系项目的开发人员。

合并请求

当前工作测试完成之后,便可合入主干,此时需要在git平台(此处假设为github)上请求merge request,即mr

打开github上我们项目所在的页面,并切换到我们的个人分支。如下图所示。

切换到个人分支

然后选择New pull request,便会打开一个新的mr请求,跳转到如下页面。选择要合入的分支develop,填写好log,即可点击create pull request按钮。

mr页面

注意,可在该页面最下方看到此次mr具体修改了哪些文件,在mr之前最好检查一遍,防止误提交或漏提交。

之后管理人员便可对mr请求进行commit,才真正将个人工作的内容合入主干分支。

合入主干后,临时的分支,如bug分支,或某个短期的特性分支,便可以删除了。