GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
网址
官网:https://about.gitlab.com 中文官网:https://www.gitlab.com.cn
安装
网上很多介绍gitlab的安装教程,无比复杂,其实在gitlab官网就有介绍安装过程,十分简单,本文基本按照官网的介绍来安装。这里的环境为centos7
配置必要的依赖关系
yum install curl policycoreutils openssh-server openssh-clients
systemctl enable sshd
systemctl start sshd
yum install postfix #安装邮件服务
systemctl enable postfix
systemctl start postfix
firewall-cmd --permanent --add-service=http #配置防火墙策略,我这里没有开启防火墙,其实可以不用
systemctl reload firewalld
下载GitLab的rpm包并安装
由于国内网络环境,这里用的清华大学开源软件镜像站
curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-9.4.4-ce.0.el7.x86_64.rpm
rpm -i gitlab-ce-9.4.4-ce.0.el7.x86_64.rpm
配置并启动 GitLab
注意:服务器最低内存为2G,不然web页面无法访问
gitlab-ctl reconfigure
初始化时间可能有点长
如果出现下面的报错,则需要安装libsemanage
================================================================================
Error executing action `run` on resource 'execute[semodule -i /opt/gitlab/embedded/selinux/rhel/7/gitlab-7.2.0-ssh-keygen.pp]'
================================================================================
yum install libsemanage-static libsemanage-devel -y
修改URL地址
创建git项目时,默认的项目地址域名为:gitlab.example.com,需要修改为本机IP或自定义域名。 配置文件目录为:/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 配置如下:
host: 172.31.101.22
port: 80
https: false
查看状态
[root@localhost ~]# gitlab-ctl status
run: gitaly: (pid 4536) 5991s; run: log: (pid 3456) 6660s
run: gitlab-monitor: (pid 4541) 5990s; run: log: (pid 3767) 6488s
run: gitlab-workhorse: (pid 4544) 5990s; run: log: (pid 3472) 6654s
run: logrotate: (pid 20979) 2389s; run: log: (pid 3501) 6637s
run: nginx: (pid 7637) 4852s; run: log: (pid 3483) 6648s
run: node-exporter: (pid 4563) 5988s; run: log: (pid 3585) 6579s
run: postgres-exporter: (pid 4570) 5988s; run: log: (pid 3722) 6499s
run: postgresql: (pid 4579) 5987s; run: log: (pid 3279) 6718s
run: prometheus: (pid 5286) 5902s; run: log: (pid 3552) 6595s
run: redis: (pid 4593) 5986s; run: log: (pid 3219) 6725s
run: redis-exporter: (pid 4599) 5986s; run: log: (pid 3658) 6546s
run: sidekiq: (pid 7490) 4926s; run: log: (pid 3436) 6666s
run: unicorn: (pid 7756) 4814s; run: log: (pid 3398) 6672s
访问
输入服务器ip即可访问,gitlab服务自带nginx,第一次登录,需要配置root密码
使用
- 创建新仓库
mkdir test ## 创建新文件夹
cd test ## 进入到此目录
git init ## 相当于初始化
- 克隆新仓库
git clone /path/to/repository ## 克隆本地仓库
git clone username@host:/path/to/repository ## 克隆远端仓库
- 添加与提交
git add <filename>/* ## 将计划改动添加到缓存区
git commit -m "代码提交信息" ## 然后将改动提交到HEAD
- 推动改动
git push origin master ## 将HEAD中的改动推送到远端仓库,可以把 master 换成你想要推送的任何分支。
git remote add origin <server> ## 添加远程主机
git remote rm <主机名> ## 删除远程主机
git remote -v ## 查看远程主机的网址
- 拉取更新
git pull ## 取回远程主机某个分支的更新,再与本地的指定分支合并
等同于:
git fetch origin ## 将远程主机的更新取回本地,但不合并
git merge origin/master ## 在本地分支上合并远程分支
- 分支
git checkout -b feature_x ## 创建分支
git checkout master ## 切换回主分支
git branch -d feature_x ## 删除分支
git push origin <branch> ## 推送分支
提交项目
将本地项目提交到github
首先在github上创建新项目,例如web_ceshi,然后进入本地项目目录:
git init
git remote add origin git@github.com:pangerl/web_ceshi.git
git add *
git commit -m 'XXX'
git push origin master
删除敏感信息
创建gitignore文件
git pull origin master
vim .gitignore
echo '.idea' > .gitignore
git rm -r --cached .idea #删除已经上传到github的文件夹
git commit -m '删除隐藏目录'
git push origin master
参考链接: