前述:
本文目的:
- 通过docker搭建gitlab服务器
- 新建群组devops
- 新建项目core_py
- 新建用户,他/她在devops组中是主程序员
- 新用户上传版本库到gitlab
- 熟悉git远程操作方法

1 .Git简介

  • Git是一个开源的分布式版本控制系统,用于敏捷高
    效地处理任何或小或大的项目。
  • Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发
    而开发的一个开放源码的版本控制软件。
  • Git 与常用的版本控制工具 CVS, Subversion 等不同,
    它采用了分布式版本库的方式,不必服务器端软件支
    持。
  • 现在常用的git产品有github与gitlab,但是github近期被一直做闭源的微软收购了,所以现在多用gitlab,但是gitlab上因为是开源的,自己写的内容放在上面可能会被修改,所以公司内部使用,可以在自己的局域网内搭建gitlab服务器。

    2.Git工作流程

3.Git的工作区、暂存区和版本库
• 工作区:就是你在电脑里能看到的目录
• 暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)
• 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

4.在本地操作Git

  • 安装及配置用户相关信息
[root@haproxy1 ~]# yum -y install git    //安装git
[root@haproxy1 ~]# git config --global user.name "Miss Wang"    //设置用户名
[root@haproxy1 ~]# git config --global user.email "Wang@meinv.com"   //设置用户邮箱
[root@haproxy1 ~]# git config --global core.editor vim  //设置git默认编辑器为vim
[root@haproxy1 ~]# git config --list //列出配置信息[root@haproxy1 ~]# cat ~/.gitconfig   //查看配置信息
  • 创建仓库
    Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init是使用 Git 的第一个命令。
[root@haproxy1 ~]# mkdir devops
[root@haproxy1 ~]# cd devops
[root@haproxy1 devops]# git init
初始化空的 Git 版本库于 /root/devops/.git/
或者以上3条命令用以下一条命令代替:
[root@haproxy1 devops]# git init devops
  • 添加文件到暂存区
添加指定文件
[root@haproxy1 devops]# echo hello > hello.txt
[root@haproxy1 devops]# git add hello.txt
[root@haproxy1 devops]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#   新文件:    hello.txt
#添加所有文件
[root@haproxy1 devops]# cp /etc/hosts .
[root@haproxy1 devops]# git add .
[root@haproxy1 devops]# git status -s
A  hello.txt
A  hosts
  • 确认至仓库:提交之前务必先设置用户信息
[root@haproxy1 devops]# git commit -m "add files"
[master(根提交) dee13e2] add files2 files changed, 7 insertions(+)create mode 100644 hello.txtcreate mode 100644 hosts
[root@haproxy1 devops]# git status
# 位于分支 master
无文件要提交,干净的工作区
[root@haproxy1 devops]# echo world >> hello.txt
[root@haproxy1 devops]# git commit -am "update hello.txt"
[master 4d8999d] update hello.txt1 file changed, 1 insertion(+)
  • 删除跟踪文件
    要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除,然后提交
[root@haproxy1 devops]# git ls-files   //查看版本库中文件
hello.txt
hosts
[root@haproxy1 devops]# git rm hosts
rm 'hosts'
[root@haproxy1 devops]# git status
# 位于分支 master
# 要提交的变更:
#   (使用 "git reset HEAD <file>..." 撤出暂存区)
#
#   删除:      hosts
#
[root@haproxy1 devops]# git commit -m "rm hosts"
[master b87bfc4] rm hosts1 file changed, 6 deletions(-)delete mode 100644 hosts
[root@haproxy1 devops]# git status
# 位于分支 master
无文件要提交,干净的工作区
[root@haproxy1 devops]# git ls-files
hello.txt

5.使用远程服务器

  • 搭建本地gitlab服务器(192.168.1.1/24)
    在https://mirrors.aliyun.com/centos/7/extras/x86_64/Packages/上下载docker安装包,先搭建一个docker容器,在docker容器上启用gitlab中文版镜像(下载地址参考https://gitlab.com/xhang/gitlab.git),数据保存在的docker的宿主机上,使用docker搭载gitlab可以节省宿主机资源。
    以下为docker的安装包
    container-selinux-2.42-1.gitad8f0f7.el7.noarch.rpm
    container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch.rpm
    docker-1.13.1-53.git774336d.el7.centos.x86_64.rpm
    docker-client-1.13.1-53.git774336d.el7.centos.x86_64.rpm
    docker-common-1.13.1-53.git774336d.el7.centos.x86_64.rpm
    oci-register-machine-0-6.git2b44233.el7.x86_64.rpm
    oci-systemd-hook-0.1.15-2.gitc04483d.el7.x86_64.rpm
    oci-umount-2.3.3-3.gite3c9055.el7.x86_64.rpm
    skopeo-containers-0.1.28-1.git0270e56.el7.x86_64.rpm
[root@gitlab docker_pkgs]# ls
container-selinux-2.42-1.gitad8f0f7.el7.noarch.rpm
container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch.rpm
docker-1.13.1-53.git774336d.el7.centos.x86_64.rpm
docker-client-1.13.1-53.git774336d.el7.centos.x86_64.rpm
docker-common-1.13.1-53.git774336d.el7.centos.x86_64.rpm
oci-register-machine-0-6.git2b44233.el7.x86_64.rpm
oci-systemd-hook-0.1.15-2.gitc04483d.el7.x86_64.rpm
oci-umount-2.3.3-3.gite3c9055.el7.x86_64.rpm
skopeo-containers-0.1.28-1.git0270e56.el7.x86_64.rpm
[root@gitlab docker_pkgs]# yum -y install ./*.rpm
[root@gitlab docker_pkgs]# systemctl start docker
[root@gitlab docker_pkgs]# systemctl enable docker
[root@gitlab docker]# cd images/
[root@gitlab images]# ls
gitlab_zh.tar
[root@gitlab images]# docker load < gitlab_zh.tar
a94e0d5a7c40: Loading layer 116.5 MB/116.5 MB
88888b9b1b5b: Loading layer 15.87 kB/15.87 kB
52f389ea437e: Loading layer 14.85 kB/14.85 kB
52a7ea2bb533: Loading layer 5.632 kB/5.632 kB
db584c622b50: Loading layer 3.072 kB/3.072 kB
62786ff6a243: Loading layer 75.85 MB/75.85 MB
71bc04f4b7c7: Loading layer 2.048 kB/2.048 kB
26e083d332d8: Loading layer 2.048 kB/2.048 kB
2c02e58e96b8: Loading layer 2.048 kB/2.048 kB
589c7a23de2a: Loading layer 15.87 kB/15.87 kB
44474d2cdcd1: Loading layer 1.359 GB/1.359 GB
41c94e16b901: Loading layer 16.78 MB/16.78 MB
04cafa6a1534: Loading layer   160 MB/160 MB
Loaded image: gitlab_zh:latest
[root@gitlab images]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
gitlab_zh           latest              1f71f185271a        5 months ago        1.63 GB将物理主机ssh端口改为2222后,起动容器
[root@gitlab images]# vim /etc/ssh/sshd_config
[root@gitlab images]# sed -n '/Port/p' /etc/ssh/sshd_config
Port 2222
#GatewayPorts no
[root@gitlab images]# sed -n '/^Port/p' /etc/ssh/sshd_config
Port 2222
[root@gitlab images]# systemctl restart sshd
[root@gitlab images]# docker run -d -h gitlab --name gitlab -p 443:443 -p 80:80 -p 22:22 --restart always -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v /srv/gitlab/data gitlab_zh           //后台运行gitlab容器,主机名为gitlab,容器名为gitlab,用户可以通过web的443和80端口访问,也可以通过ssh的22端口访问,并且开机自启容器,将宿主机的/srv/gitlab/目录下的配置文件及日志分别映射到容器,并且数据各保存一份在宿主机和容器的/srv/gitlab/data内
4303339de8eb7f42647399eea665ec60077762d4b8b9c5522c04bfbc091a6719
  • 初始化gitlab服务器
    浏览器地址栏输入gitlab服务器的ip地址192.168.1.1
    密码需大于8位

默认用户名为root

添加gitlab项目
• 创建群组group
使用群组管理项目和人员是非常好的方式
• 创建项目project
存储代码的地方,里面还包含问题列表、维基文档以及其他一些Gitlab功能
• 创建成员member
添加你的团队成员或其他人员到Gitlab

创建群组

创建项目


创建用户

创建用户后,再次编辑可设置密码
root用户将新用户加入组中,并设置新用户为“主程序员”

新用户初次登陆,需设置自己的密码

用户管理

  • 将本地生成的公钥上传至服务器
[root@haproxy1 ~]# ssh-keygen -t rsa -C "misswang@meinv.com" -b 4096
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:nU0uhh3ZIKuKoGxHfRs7TA+VQx6czxap5mYuzsqllpQ misswang@meinv.com
The key's randomart image is:
+---[RSA 4096]----+
|        ooo .    |
|        o=o*     |
|        .=* +    |
|    .  ..*.X     |
|.  . .o=S B o    |
|o... E+ *= .     |
|.o..o .*+.       |
|. . .o+...       |
|    .+oo.        |
+----[SHA256]-----+
[root@haproxy1 ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIjvZUK8jFGABi1BOCfiquqw77x3TrWQOF1xhbk32T0DrBCsgbVbNQ464of5LzQ8xTWuviH/myEgzQVzDuGzUkaj2Y3snj4rI4ZABl392n8gwBOa+3FDjch1gbRII+ZwO++iMFMJScxjHRoO9Lo4K4gxAhPYWWfuWBaPouZixDbUGPW6KjnD0N246t5EsnH8maMIjb9w8h1jtJfhgdnQv3By9j4mVYI37H56rWfGhrHUh9zYCj0YBn78IEy90Z/559CaQ3S5CpaT+75OnPh+DKTrJA8uRy3s6UbWjPRrVrCf6AoBGAsOlh8ubwn25UdKnn1CsDaPSmLZdZl+juFUQMiXapQkVjemoxgRHXJgpUfBfY48y5PhNK7HBHYc1t8tFiVIBXti6BVqHucagetLHiZuRK+2403SacnfPDx73rFQlta5Ad4KeNzqDpNbCphtcKlB5p9uWgRFR47TwMgwfcVMOnDLojrr3c1d2xxi4IKW8Yo8JD65YUxQlR9coMuzwX4SBKb6zreq0F4hHTJfAoz/EPT1osCAO+Lxq0wzbUKJy4Pea+4ftlQDFDQTQtAD2XYQxAqelvUJLLf/4FL4EkC328+qjCQj77XGGR8XFXpu04jA6MDSeWQsLljOVOOQ1ypba12EMh8lYo0zq0epnI68Gco06jOtEiQbQRk8LnKQ== misswang@meinv.com






  • 将本地仓库推送至服务器,远程仓库服务器的默认名称为 origin
[root@haproxy1  devops]# git  remote  rename  origin  old-origin    [root@haproxy1  devops]# git  remote  add     origin  \ git@192.168.1.1:/devops/core_py.git
[root@haproxy1  devops]# git  push  -u  origin  --all
  • 添加新文件
[root@haproxy1  devops]# echo  '#this is a test' > hi.py
[root@haproxy1  devops]# git  add  hi.py
[root@haproxy1  devops]# git  commit  hi.py  -m  '新的测试' [root@haproxy1  devops]# git  push  origin  master
  • 下载代码到本地
[root@haproxy1 ~]# git clone git@192.168.1.1:devops/core_py.git
[root@haproxy1 ~]# ls -a core_py/
.   ..   .git      hello.py  hi.py
  • 更新代码到本地
[root@haproxy1 core_py]#git pull

搭建gitlab服务器及简单使用相关推荐

  1. Windows环境搭建 Gitlab 服务器

    Windows环境搭建 Gitlab 服务器 01 背景 新公司测试部门目前没有专门的代码管理工具,出于管理方便,我在 Window10上搭建了Git 服务器,用于日常各项目自动化脚本的管理. 02 ...

  2. Ubuntu16.04搭建GitLab服务器教程

    GitLab官方搭建教程地址: https://about.gitlab.com/install/#ubuntu 1.安装包下载 Ubuntu16.04下载地址:http://releases.ubu ...

  3. 使用docker搭建gitlab服务器

    使用docker搭建gitlab服务器 一.查看当前dokcer环境 二.安装docker-compose 三.编辑yaml文件 1.创建目录及yaml文件 2.编辑ymal文件 四.生成自签名证书文 ...

  4. 虚拟机上搭git服务器,搭建gitlab服务器

    搭建gitlab服务器,统一管理软件项目 一.环境准备 1.启动一台虚拟机,内存至少改为4G 2.在虚拟机上配置docker [root@node1 docker]# yum install -y d ...

  5. 使用腾讯云轻量应用服务器搭建gitlab服务器

    使用腾讯云轻量应用服务器搭建gitlab服务器 前言:代码平台托管安全吗? 之前就有某科集团,在网络上面透露,托管在某云公共代码托管平台的源码发生泄漏,造成至少40多家企业200多个项目代码泄漏.所以 ...

  6. Ubuntu 16.04操作系统中搭建GitLab服务器的操作记录

    本文主要记录在Ubuntu 16.04操作系统中搭建GitLab服务器的操作记录,以下是操作步骤(主要参考资料:https://about.gitlab.com/downloads/#ubuntu16 ...

  7. 在Windows下搭建Gitlab服务器

    转自https://www.cnblogs.com/zxtceq/p/11082525.html 一.GitLab简介 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在 ...

  8. 手把手教你搭建gitlab服务器

    gitlab是什么?他有什么作用呢? gitlab是一个开源的git仓库管理软件,并提供web界面,方便管理git仓库.和github很相似,不过github暂时没有开源版本,项目必须托管到githu ...

  9. docker搭建gitlab服务器(Centos7)

    系统环境:CentOS Linux release 7.6.1810 (Core) git版本:gitlab/gitlab-ce 一.安装和启动docker 见HTTPRUNNERMANAGER安装部 ...

最新文章

  1. posixkill php,在linux中使用PHP的posix_kill()会导致奇怪的行为
  2. 【机器学习】怎样将Embedding融入传统机器学习框架?
  3. centos7 关闭selinux_Devops之LDAP部署安装(centos7+openLDAP+PhpLDAPAdmin)
  4. [原创]关于设置linux中vim 显示行号
  5. django中的media
  6. Bootstrap 模态对话框只加载一次 remote 数据的解决办法 转载
  7. LeetCode之移除元素
  8. Rayman的绝顶之路——Leetcode每日一题打卡16
  9. vue 中引入阿里云的云盾防水墙
  10. 矩母函数求期望与方差
  11. WPF学习系列 游戏-选张图片做成9宫格拼图
  12. 第七章---8253和8255芯片
  13. TIA博途_数据的保持型与初始化的具体方法和相关问题汇总
  14. 计算机拓展训练论文,素质拓展训练论文拓展训练论文
  15. 5G wifi 和 5G通信
  16. kata cantainer介绍及Ubuntu安装kata cantainer
  17. 【惊了】迅雷下载速度竟然比不上虚拟机中的下载速度
  18. 360图书馆自动全文.
  19. netty案例,netty4.1中级拓展篇五《基于Netty搭建WebSocket,模仿微信聊天页面》
  20. 技术分享 | 黑盒测试方法论—边界值

热门文章

  1. android主流手机测试,30款主流安卓手机评测结果:三星Note 9评为2018最佳
  2. 个性化cmd控制台以及编码方式
  3. 基于Visual C++2010 与office2010开发办公自动化(23)- 使用剪贴板导出Excel文件
  4. java764位it之家_Java Runtime Environment 7迎来Update 45 - IT之家
  5. 百度、腾讯、阿里巴巴的真正大老板是谁
  6. linux开发常用-shell_awk
  7. 如何看双通道是否开启_缓存速度不理想,如何才能开启双通道来提升电脑内存带宽?...
  8. vue父子组件通信,兄弟组件通信
  9. NRF2401无线通信
  10. [附源码]计算机毕业设计JAVA流浪宠物免费领养系统