(一)、简介
git的有点
一、git是分布式的,svn不是
git分布式本地就能够用,能够随便保存各类历史痕迹,不用担忧污染服务器,连不上服务器也能提交代码、查看log。
二、GIT分支和SVN的分支不一样
分支在SVN中其实是版本库中的一份copy,而git一个仓库是一个快照,因此git 切换、合并分支等操做更快速。
三、git有一个强大的代码仓库管理系统 - gitlab
能够很方便的管理权限、代码review,建立、管理projectlinux
GitLab 是一个用于仓库管理系统的开源项目,使用Git做为代码管理工具,并在此基础上搭建起来的web服务。可经过Web界面进行访问公开的或者私人项目。它拥有与Github相似的功能,可以浏览源代码,管理缺陷和注释。能够管理团队对仓库的访问,它很是易于浏览提交过的版本并提供一个文件历史库。团队成员能够利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片断收集功能能够轻松实现代码复用。
版本:GitLab 分为社区版(CE) 和企业版(EE)nginx
(二)、安装
方法一:经过yum源进行安装
一、配置yum源git
[root@otrs004097 ~]# cat /etc/yum.repos.d/gitlab-ce.repo [gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1
二、更新本地yum缓存
sudo yum makecacheweb
三、安装GitLab社区版
sudo yum install gitlab-ce #自动安装最新版
sudo yum install gitlab-ce-x.x.x #安装指定版本shell
四、GitLab经常使用命令vim
sudo gitlab-ctl start # 启动全部 gitlab 组件; sudo gitlab-ctl stop # 中止全部 gitlab 组件; sudo gitlab-ctl restart # 重启全部 gitlab 组件; sudo gitlab-ctl status # 查看服务状态; sudo gitlab-ctl reconfigure # 启动服务; sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件; gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab; sudo gitlab-ctl tail # 查看日志;
方法二:经过rpm包安装
gitlab经过下载rpm包集成了它所须要的软件,简化安装步骤,rpm包能够从官网上或清华镜像源获取https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/. 下载最新的版本:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm浏览器
[root@otrs004097 opt]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm
[root@otrs004097 opt]# rpm -ivh gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm
或者
[root@otrs004097 opt]#yum localinstall -y gitlab-ce-12.4.2-ce.0.el7.x86_64.rpm缓存
(三)、修改配置文件。
[root@otrs004097 ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.4.97'服务器
[root@otrs004097 ~]# gitlab-ctl reconfigure #####从新加载配置
注意要保留8080端口不然会报错的。能够修改下边的配置文件 vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
listen "127.0.0.1:8080", :tcp_nopush => true
重置成功后就能够登陆网页 了。dom
备注:gitlab的守护进程是会默认开启nginx的,若是想要关闭,能够尝试一下操做
gitlab-ctl stop nginx
gitlab-ctl restart nginx
若是想要释放资源,关闭gitlab时,能够尝试一下操做
gitlab-ctl stop
(四)、gitlab的使用
一、登陆gitlab,在浏览器里输入相关的信息
二、默认的帐号为:root,密码是刚才重置的。
三、安装Git工具linux:安装Git,使用自带的源安装。
[root@otrs004097 opt]# yum install git -y
四、生成密钥文件,使用ssh-keygen生成密钥文件.ssh/id_rsa.pub.
[root@otrs004097 opt]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:at+BXYp8LPxfZ6U00BssEFb1LhvnyphuhFpOyRYYBMo root@otrs004097 The key's randomart image is: +---[RSA 2048]----+ | .o. +o... | | . . .. . o . | | E o o + .| | . . o + | | S. +. * +| | + =Bo.. O.| | o ***. + +| | . ..=...= + | | . o+= o | +----[SHA256]-----+
五、在gitlab主页中新建一个project。
六、客户端生成密钥文件
[root@DEV004021 ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDjYPFEWZ/TqT750fQnsoYgzVtjp9NyT3dVPF8BnUJ8coDQLixoYFevXeWbOhECoYI5ekY/6PgLjy3yVJ8uX3BitluHybttO3QhtvmNVRhHTilSyX2c6fxDMIouD08Xnda1w3I9mD8SD+Xg/OCy/8V+QWpfvC1D+oU6Hkt9UyEKgxZ5hnInnc4dWJgpuGsHKa2Hqrr3VImPaSeJ1xVuYl8jsxQjSa1+zIzDbfM0NLCfT/1FGPLCJ4kjOKTFIv3AHn3y9hwTs1H1RrE5bv5H4fNpjG1GsOGKw9MxSP2mV9RHhOI4ItiMK0NNNrZVVa+Lgs50/8s9cn3tWzaHiXNWPEWR root@DEV004021
将公钥复制到gitlab中
查看ssh key添加完成
七、点击项目,查看ssh地址和http地址
(五)、客户端下载和上传文件,都在客户端操做
一、进入到相应的目录,下载代码
[root@DEV004019 data]# mkdir /opt/gitlab [root@DEV004019 data]# cd /opt/gitlab/ [root@DEV004019 gitlab]# git clone http://192.168.4.97/root/jeeson.git Cloning into 'jeeson'... Username for 'http://192.168.4.97': root Password for 'http://root@192.168.4.97': remote: Enumerating objects: 6, done. remote: Counting objects: 100% (6/6), done. remote: Compressing objects: 100% (3/3), done. remote: Total 6 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (6/6), done. [root@DEV004019 gitlab]# ll total 0 drwxr-xr-x 4 root root 64 Nov 20 16:48 jeeson
二、编辑相应的脚本文件
[root@DEV004019 jeeson]# vim testlqb.sh echo "this is test shell "
三、将新增的文件加入到索引中[root@DEV004019 jeeson]# git add testlqb.sh
四、将该文件提交到本地仓库中
[root@DEV004019 jeeson]# git commit -m "this is test shell" [master 380ea1d] this is test shell 1 file changed, 1 insertion(+) create mode 100644 testlqb.sh
五、将文件同步到gitlab服务器上
[root@DEV004019 jeeson]# git push -u origin master Username for 'http://192.168.4.97': root Password for 'http://root@192.168.4.97': Counting objects: 4, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 286 bytes | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) To http://192.168.4.97/root/jeeson.git c47a84c..380ea1d master -> master Branch master set up to track remote branch master from origin.
六、在gitlab服务器的网页查看