02 github与gitlab
一 github的使用
github是一个git版本库的托管服务,是全球最大的软件仓库。
1 注册用户,新建git项目
2 配置ssh-key
3 克隆项目到本地
4 推送新代码到github
查看远程仓库:git remote
git remote add origin git@github.com:qiuzengjia/git_data.git //创建一个远程仓库,并关联到github
git remote //origin
git push -u origin master //从本地仓库推送到远程仓库
git clone git@github.com:qiuzengjia/git_data.git //从github克隆项目到本地
二 gitlab的使用
1 gitlab的安装
下载好安装包 gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
yum -y install policycoreutils-python
rpm -ivh gitlab-ce-10.2.2-ce.0.el7.x86_64.rpm
vim /etc/gitlab/gitlab.rb //修改url地址为本机的ip external_url 'http://172.16.1.20'
gitlab-ctl reconfigure //启动程序
2 gitlab的文件目录结构
/opt/gitlab/ # gitlab的程序安装目录
/var/opt/gitlab # gitlab目录数据目录
/var/opt/gitlab/git-dfata # 存放仓库数据
gitlab-ctl status # 查看目前gitlab所有服务运维状态
gitlab-ctl stop # 停止gitlab服务
gitlab-ctl stop nginx # 单独停止某个服务
gitlab-ctl tail # 查看所有服务的日志
3 gitlab的服务构成
Gitlab的服务构成:
nginx: #静态web服务器
gitlab-workhorse: #轻量级的反向代理服务器
logrotate: #日志文件管理工具
postgresql: #数据库
redis: #缓存数据库
sidekiq: #用于在后台执行队列任务(异步执行)。
unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。
4 具体使用
01 登陆gitlab-web
浏览器输入IP:192.168.75.20 设置初始密码,用root用户登陆。
root 12345678
02 外观修改
03 创建组,用户与项目
有先后顺序,先添加组。然后添加用户,再把用户添加到组里。然后创建项目,再绑定到已经创建好的first-test组。
04 创建一个远程仓库,并且推送代码过去
git remote //查看有没有远程仓库
git remote remove origin //删除远程仓库
git remote add origin git@192.168.75.20:first-test/myproject.git //创建远程仓库
git push origin master:master
05 创建一个dev用户,以dev用户登陆,拉去项目到本地仓库。
yum -y install git
git config --global user.email "dev@qq.com"
git config --global user.name "dev"
git clone git@192.168.75.20:first-test/myproject.git
echo "test-dev-info" >>dev-file.txt
cat dev-file.txt
git add .
git commit -m "add dev-file" //本地提交修改
git push origin master //推送到远程仓库
06 上面的dev直接push到master主干是不安全的,所以需要做分支保护。
做了如上的配置之后,除了master用户,其他用户就不能push代码到master分支了。如果需要merge,可以发起merge请求。
07 代码合并
git branch -d dev //删除本地dev分支
git checkout -b dev //创建新的分支
git branch //查看当前所在分支
echo "new dev file">>dev-new.txt
git add .
git commit -m "dev new file" //提交
git push -u origin dev //上传到远程仓库,并创建新分支dev
可以看到,已经有dev分支生成了,新文件也到了。点击右上角的create merge request发起合并请求。
08 gitlab的备份与恢复
01 自动备份
1 修改配置文件
vim /etc/gitlab/gitlab.rb
gitlab_rails['manage_backup_path'] = true #开启备份
gitlab_rails['backup_path'] = '/data/backup/gitlab' #备份目录
gitlab_rails['backup_archive_permissions'] = 0644 #生成的备份文件权限
gitlab_rails['backup_keep_time'] = 604800 #备份保留的时间(以秒为单位,这是七天默认值)
2 创建对应的目录
mkdir -pv /data/backup/gitlab
chown -R git.git /data/backup/gitlab
3 重启服务
gitlab-ctl reconfigure
4 编写定时任务
0 4 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
02 手动备份
gitlab-rake gitlab:backup:create //备份文件会出现在/data/backup/gitlab,是在配置文件中配置好的
03恢复
1 停止相关服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
2 恢复相关数据
gitlab-rake gitlab:backup:restore BACKUP=xxxx
gitlab-ctl start