在团队合作开发的项目中,大家可能经常会用到GitLab,GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
总之,它的功能十分强大,其安装和部署的过程这里先不提及。由于之前没有自己搭建过这样一套系统,我在使用的过程中还是踩了一些坑的,在这里简单分享下。
首先画图说明一下GitLab的开发流程:
一个项目里面的角色分为master和developer,master是一个主分支,一般情况下是主分支的线上代码仓库,有一个负责人主管,developer是其他开发人员的线上代码仓库,Local Test是实际在开发IDE环境中的代码,用来在本地进行开发测试,具体的实现流程是:
最近的自动化运维项目开发的过程中使用的是Pycharm这个IDE,需要将GitLab集成在Pycharm中,为了快速上手开发项目,我采用了一种比较省事儿的办法搭建开发环境,就是讲同事的Virtual Box中的Linux操作系统直接导出了一份儿,然后在我的本地测试环境重新导入,按照固定的流程重新fork了master上面的代码,注册了新的devoloper用户,于是就开始了代码提交,每次代码提交的过程还是很有成就感的,因为自己也为整个项目出了自己的一份力量。但是,正是这次“图省事儿”的环境导入,导致了一个奇怪的问题,见下图:
在项目Repository中的Contributors里面居然看不到这几个月对项目所做的贡献,显示只有四次提交,然后询问同事,初步怀疑是我的提交代码量都一起算到了他的分支上。然后开始分析这个问题,我除了编程环境的搭建使用的他的系统,GitLab账号是最新的,代码是我从自己的分支和主分支做Merge的,为什么GitLab不显示贡献量,尝试的方法有以下几种:
经过这些尝试,我可以确定,问题是出在了这个环境上面,一定是环境上有些参数没有设置成自己的,导致提交的时候GitLab识别错误。于是查询了一下GitLab的相关配置,仔细检查了代码Merge过程中的每一个细节。终于,在commit file的页面找到了问题所在,见下图:
在Pycharm的Commit页面右上角,发现了一个Author的输出框,应该是要填写作者信息,我填上了自己的GitLab账号,重新提交文件,发现问题解决,已经可以显示我自己的提交了。到这里,问题就很明确了:Git---Commit文件的过程中,默认的Author是别人的账号,需要修改成自己的账号。于是赶紧使用命令:
git config --list
查看git的配置状况,发现user.name和user.email都是别人的账号,通过以下命令进行修改:
git config --global user.name your_name
git config --global user.email your_email
修改完之后,问题彻底解决,不再需要在Author栏输入相应的user名称了,默认提交即可。
总结,当我们使用别人克隆的系统的时候,主要是使用各种软件环境,尽可能用自己的账户名和密码去登陆这些软件,第一是保护别人隐私,第二是避免出现像今天这样类似的错误。回过头来看,问题很简单,但是在实际探索的过程中还是花费了一些时间,所以把它记录下来,也算是积累一点儿工作经验吧。