上面要求代码从svn改成git,需要一个私有化的代码管理工具,于是想到了gitlab, 其实我们人这么少,一般一个前端,一个后端,流程简单,svn和git 用起来没啥区别,可是呢上面说了,那就改吧
对于持续交付我现在的理解还不是十分深刻,目前就理解成每个程序员代码的上传到发布整个流程吧。
最开始我们是svn,我不知道svn 有没有分支这个说法。当我们在没有分支的情况下,本地代码只有一份,如果我们想放下手头的工作,去新开一个bug 或者feature ,这都是不允许的,都是要在之前工作的基础上,或者你换一个文件夹。鉴于上面的问题,我们引入了git。
最开始引入git,我是想一个文件夹即用git 管理也用svn 管理,svn 管理的我用来上线,git 管理的用来feature开发,每次上传文件的时候,我都不处理git 管理的那个文件夹,这样既保证了我的线上服务器代码没有改变,也能保证新的代码通过git传输到了另一个地方,于是我在我们阿里云上又安装了一个git仓库。
直到后面到了老东家,我才 意识到我搭建的git 仓库功能其实就是gitlab,而且gitlab相比较会容易安装的多,但是经过手动搭建git仓库,让我更加理解git 了。
上面说的都是代码的上传,共享,那怎么发布呢?像我们之前,就是在对外服务器上装一个git,然后把git服务器上的代码拉下来,完成更新,php这样就好了,对于前端项目,还需要npm run 和 npm install, 然后把dist 目录对外暴露就好了。
上面就是itbasic 的对外访问路径,因为只有一个域名,所以通过文件夹的形式提供类似不同的虚拟站点
- gitlab 搭建
https://blog.csdn.net/Abysscarry/article/details/79402695
慕课网教程上那么复杂是因为配置了本地https
唯一一点没有提到的就是自定义域名的文件位置,如果用yum安装的话
在 /etc/gitlab/gitlab.rb下面。 - gitlab使用
默认有个root账户,自己设置密码,
可以创建用户和项目
创建项目类似github 上创建项目,后面项目的提交就是git 的使用
创建用户的话如上,主要是那个reqular和admin, 这块不是项目权限,应该是类似整个gitlab 的权限, 新建的用户可以给个初始密码,然后用户登陆的时候可以修改,用户提交代码需要把ssh 公钥粘贴到gitlab 上,一切和github类似配置项目权限 (管理员才有这些权限,比如root)
点击项目,给项目配置人员信息
目前只配置了develop和 master ,develop 是开发者,开发者不能向master 分支提交代码。只能自己开个feature分支,提交之后再gitlab 上面提交merge 申请,这个项目的master 可以merge , 这个项目的master 可以直接向master 分支提交代码
上面的administrator / test , administrator 是用户名, test 是项目名
- 监控系统信息(感觉这个可以放在一般的管理系统中,掌握服务器情况)
今天新建一个项目的时候总是显示密码错误,主要原因可能是项目建成了private , 没有解决问题,但发现了另一个问题,我下载项目的时候总是显示password ,那他是怎么识别我的name呢,答案是gitlab 上贴的ssh key,我们的每一个gitlab 用户或者 github 用户都要至少绑定一个ssh key,就是通过这个ssh key 识别我们用户名称的,我们在用gitlab 提交代码时候总是显示要配置用户名和密码,可以全局配置也可以在单个项目中配置,所以这个并不是我们登陆github 或者gitlab 的用户名,这个只是我们提交时候日志上面显示的内容。