本文假设读者已经对git的基本概念、操作有一定的理解,由于git使用非常灵活,在实践当中衍生出了很多种不同的工作流程,不同的项目、不同的团队会有不同的协作方式。本文主要介绍一个常见的适用于闭源项目的协同开发流程(读者可以对照github上开源项目的开发流程)。

以项目demo/laravel为例,目前有主分支master branch和开发分支development branch,主分支和开发分支是受保护的,开发者不能直接对其进行开发工作。只有项目管理者(通常是项目发起人)能对其进行较高权限的操作。

协同开发过程中开发者的工作流程是先将远程库克隆到本地,然后基于开发分支创建一个功能分支,进行相应的功能开发后提交并推送到远程库。以下是具体步骤,包含命令行及其等价的PhpStorm操作。其中PhpStorm需要安装GitLab Projects插件。
1. 克隆项目到本地
命令行:git clone git@gitlab.qiji.tech:demo/laravel.git,若环境没配置好,需要先添加SSH-Key
PhpStorm操作
克隆项目
2. 检出development分支
命令行:git checkout development
PhpStorm操作,在右下角位置,点击Git: master,按图示1234步骤操作。
检出development分支
3. 基于development分支创建新分支test
命令行:git branch test
PhpStorm操作
创建新分支
4. 检出test分支
命令行:git checkout test
PhpStorm在创建新分支后自动切换到新分支
5. 开发相关功能完毕之后,将新添加的文件或者加入新的改动放入git暂存区(staging area)
命令行:git add .
当你添加新文件,PhpStorm都会询问你是否将其加入git暂存区,你也可以设置为自动加入。
6. 提交
命令行:git commit -m “添加数据迁移”
PhpStorm操作
提交
7. 用本地分支table_test建立远程分支test
命令行:git push origin test
PhpStorm操作
push

经过一个或多个commit和push,功能开发完成后,提交merge request,请求合并到开发分支中,等待项目管理者审核。若审核通过则新功能被合并到开发分支中,若没通过则根据管理者意见修改后重新提交合并请求。下面是合并请求操作示图,包括web网站操作及其等价的PhpStorm操作,其中PhpStorm操作界面由GitLab Projects插件支持,功能较少,Web界面功能更丰富和直观,建议使用。目前暂没有方便的命令行操作。
web网站操作示图
merege request
PhpStorm操作示图
merege request
最后,本人初学这个工作流程,有问题和不明之处还请各位读者直接联系我指出,先行谢过。

Comments

  1. tanxiaolongtanxiaolong

    1、我想问一下,是remote有多少个分支,local就有多少个对应的分支吗?
    2、如果我的local分支table的工作做了50%,那我的这个table要等到做完再merge吗?
    3、如果这个table是多人合作的,我完成了我的部分就可以申请merge吗?
    4、commit多次后,merge最新的commit到origin对应的分支对吗?
    5、第一步中的顺序,是不是应该先fork原项目,然后在自己fork出来的地方工作,然后merge到origin?

发表评论

电子邮件地址不会被公开。 必填项已用*标注