4、git和gitlab的配置(1)
4.0、服务器说明:
服务器名称 |
ip地址 |
controller-node1 |
172.16.1.90 |
4.1、git介绍:
1、git分布式图:
2、git区域:
3、四种状态:
上面的操作在工作目录——暂存区域——本地仓库中循环
4.2、git编译安装:
1、安装git需要的依赖包:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
2、下载git包:
mkdir /tools/
cd /tools/
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.20.0.tar.gz
3、编译:
mkdir /application/
tar -xzf git-2.20.0.tar.gz
cd git-2.20.0
make prefix=/application/git-2.20.0/ all
echo $?
make prefix=/application/git-2.20.0/ install
echo $?
4、设置环境变量:
ln -s /application/git-2.20.0/ /application/git
rm -f /usr/bin/git
ln -s /application/git/bin/git /usr/bin/git
5、查看版本:
git --version
git version 2.20.0
6、初始化git仓库:
mkdir /test/
cd /test/
git init
初始化空的 Git 仓库于 /test/.git/
7、设置git仓库信息:
git config --global user.name "dev01"
git config --global user.email dev01@qq.com
git config --list
user.name=lc
user.email=2504164765@qq.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
4.3、git常用命令:
注意该命令只能在建立的仓库目录下进行;
git add <file>
#加入暂存区(索引区);. 代表加入所有;
git status #查看状态;
git rm --cached <file>
#从暂存区中移除,回滚暂存区中的数据;
git commit <file> -m <"注释">
#提交更新,不加文件名提交所有暂存区的文件;
git log
#查看本地库中的文件;
git status -s
#状态概览;
git diff
#尚未暂存的文件;
git diff --staged
#暂存区文件;
git reset
#回滚;
git rm <file>
#从版本库中移除,删除本地的文件,不会删除git log,方便git reset回滚版本库文件;
#相当于 rm <file>
git mv
#相当于 mv、git rm、git add 三个命令;
4.4、git分支管理:
1、分支图:
初始建立分支后,分支节点的 文件 和 master上的文件都是相同的,继承 master 分支进行自己分支的推进;
在不同的分支下创建的文件,只有在切换到该分支下才能查看;
2、常用的分支命令:
git branch about
#创建分支;
git checkout <branch>
#切换分支,切换指针;
git checkout -- <file>
#撤销对文件的修改,从提交库中拉出文件,覆盖工作目录中修改的文件,回滚工作目录;
git branch
#查看当前工作的分区;
git branch -d <branch>
#删除指定的分支;
git merge <branch>
#将指定的分支合并到 master 主分支;
#把分支上的代码merge到master,需要在master上进行分支,合并到master上的代码不能回滚到分支
#回滚的化只能单独分支的回滚;
git branch --merged
#查看已经合并到master上的分支;
git branch --no-merged
#查看没有合并到master上的分支;
3、回滚本地仓库的命令:
git reset --hard <本地库文件id>
#回滚到指定的本地仓库并清空工作目录和缓存区,就算本地物理文件删除也可以还原;
git reset --soft <本地库文件id>
#回滚到指定的本地仓库,工作目录和缓存区不会发生改变;
git reset --mixed <本地库文件id>
#默认选项,回滚本地仓库和缓存区,工作目录不会受影响;
4、回滚后回到之前的本地库:
git reflog
#分析git日志命令;
#git reflog命令分你的是所有分支的头指针的日志来查找出你在重写历史上可能丢失的提交;
git checkout <版本id>
#回滚到哪个本地库的id;
git status
#git master 的分支状态没有;
git branch test
#在丢失状态的 master 节点上创建分支;
git checkout master
git merge test
#新的分支内容merge到master;
git status
#发现git master的分支发生了改变;
4.5、git远程仓库:
1、git远程库图解:
2、git远程库命令:
git clone http://github.com/lc/scripts.git
#克隆git远程库;
#clone是本地没有repository时,将远程repository整个下载过来。
git fetch
#fetch是本地有repository时,将远程repository里新的commit数据(如有的话)下载过来,要手动与本地代码merge。
git pull
#pull是本地有repository时,将远程repository里新的commit数据(如有的话)下载过来,并且与本地代码merge。
git remote add origin http://172.16.1.100/lc.git
#添加git远程库,origin是别名,代表url路径;
git remote -v
#查看git远程库的地址;
git push origin master
#将 master 分支 push 到git远程库;
git remote rename origin gitlib
#更改远程库的信息;
git tag -a v1.0 -m "finish"
#创建标记-d,删除标签;
git tag
#查看git版本标记;
4.6、gitlab安装和配置:
1、gitlab介绍:
(1)gitlab基本介绍:
gitlab是一个基于git的源码托管解决方案;
gitlab是基于ruby on rails开发的;
gitlab集成了ngix postgreSQL redis sidekiq等组件;
(2)gitlab安装要求:
Centos7 64位;
内存 16GB+;
cpu 16颗;
2、安装依赖包:
yum install curl policycoreutils policycoreutils-python openssh-server openssh-clients postfix -y
3、开启相关服务:
(1)ssh服务(用于远程git clone仓库):
systemctl start sshd
systemctl enable sshd
4、安装gitlib:
cd /tools/
weget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.6.0-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-11.6.0-ce.0.el7.x86_64.rpm
5、修改配置文件:
(1)配置访问gitlab的url地址,git clone库资源的地址,如果有多个网卡,并不妨碍访问管理和配置;
vim /etc/gitlab/gitlab.rb
external_url 'http://172.16.1.90'
(2)使修改的配置文件生效;
gitlab-ctl reconfigure
(3)重启gitlaba:
gitlab-ctl restart
(4)启动并加入到开机自启动:
systemctl start gitlab-runsvdir.service
systemctl enable gitlab-runsvdir.service
(5)查看端口号信息:
netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 30777/nginx: master
tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 30854/redis_exporte
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 30814/prometheus
tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 30801/postgres_expo
tcp 0 0 127.0.0.1:9093 0.0.0.0:* LISTEN 30731/alertmanager
tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 30795/node_exporter
tcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 30757/gitlab-workho
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 30982/unicorn maste
tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 30753/puma 3.12.0 (
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 30777/nginx: master
tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 30876/sidekiq 5.2.3
tcp 0 0 127.0.0.1:9236 0.0.0.0:* LISTEN 30743/gitaly
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1082/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1174/master
tcp6 0 0 :::9094 :::* LISTEN 30731/alertmanager
tcp6 0 0 ::1:9168 :::* LISTEN 30753/puma 3.12.0 (
tcp6 0 0 :::22 :::* LISTEN 1082/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1174/master
udp 0 0 127.0.0.1:323 0.0.0.0:* 795/chronyd
udp 0 0 0.0.0.0:57555 0.0.0.0:* 36118/local
udp6 0 0 ::1:323 :::* 795/chronyd
udp6 0 0 :::9094 :::* 30731/alertmanager
6、http登录gitlab:
(1)输入新的密码:
(2)登录:
4.7、gitlab详解:
1、命令:
gitlab-ctl status
#查看gitlib各个组件的状态;
gitlab-ctl start
#启动gitlab服务;
gitlab-ctl stop
#关闭gitlab服务;
gitlab-ctl restart
#重启gitlab服务;
gitlab-ctl tail nginx
#查看gitlab组件nginx的日志信息;
gitlab-ctl reconfigure
#重置gitlab主配置文件;
gitlab-ctl show-config
#验证gitlab主配置文件;
2、gitlab组件:
nginx #静态web服务器;
gitlab-shell #用于处理git命令和修改authorized keys 列表;
gitlab-workhorse #轻量级的反向代理服务器;
logrotate #日志文件管理工具;
postgresql #数据库;
redis #缓存数据库;
sidekiq #用于在后台执行队列任务(异步执行);
unicorn #gitlab rails应用是托管在这个服务器上面的;
3、gitlab目录:
/var/opt/gitlab/git-data/repositories/
#默认的库存储目录;
/opt/gitlab/
#应用代码和相应的依赖程序目录;
/var/opt/gitlab/
#gitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置;
/etc/gitlab/
#gitlab的配置文件目录;
/var/log/gitlab/
#gitlab各个组件的日志存放目录;
/var/opt/gitlab/backups/
#gitlab默认备份路径;
4.8、gitlab使用流程:
1、root用户登录操作:
(1)创建组:
1)创建:
2)添加组信息:
(2)创建用户:
1) 创建:
2)添加用户内容:
3)初始化用户密码:
4)按照以上步骤分别添加dev02(开发02)、pm(项目经理),两个用户;
(3)创建项目:
1)创建:
2)填写项目内容:
3)项目信息:
(4)在项目中为用户授权:
1)
2)
2、pm用户登录操作:
(1)创建主分支:
1)
2)
3)
4.9、打通gitlab和与 git linux、windows客户端的通信:
1、git linux 客户端(dev01):
(1)在linux上安装 git ,参考前面的“4.2、git编译安装:”节;
(2)在linux客户端生成ssh秘钥对:
ls /root/.ssh/
ssh-keygen
ls /root/.ssh/
id_rsa id_rsa.pub
cat /root/.ssh/id_rsa.pub
(3)dev01登录,添加ssh公钥:
1)
2)
(4)验证:
1)http连接验证:
pwd
/root
git clone http://172.16.1.90/java/app01.git
正克隆到 'app01'...
Username for 'http://172.16.1.90': dev01
Password for 'http://dev01@172.16.1.90':
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
展开对象中: 100% (3/3), 完成.
2)ssh连接验证:
rm -rf /root/aap01/
git clone git@172.16.1.90:java/app01.git
正克隆到 'app01'...
The authenticity of host '172.16.1.90 (172.16.1.90)' can't be established.
ECDSA key fingerprint is SHA256:1YdZ6fcsUnerAJsAm7qF7obWgE+pRgy0yyOewlb/Pto.
ECDSA key fingerprint is MD5:02:09:2b:53:5b:6d:a1:73:27:e2:e1:5f:f7:5d:02:68.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.90' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
接收对象中: 100% (3/3), 完成.
3)说明:
使用 git clone 命令会将远程连接 gitlab 的方式一起保存下来;
git remote -v
origin git@172.16.1.90:java/app01.git (fetch)
origin git@172.16.1.90:java/app01.git (push)
cd /root/app01/
git pull
已经是最新的。
#如果使用的http clone远程库的代码,在使用git pull 命令是需要输入账户和密码,而使用ssh clone
#远程库不需要用户名和密码;
2、git windows 客户端(dev02):
(1)下载 git windows 客户端,版本号要和linux中使用的一致;
https://github.com/git-for-windows/git/releases/download/v2.20.0.windows.1/Git-2.20.0-64-bit.exe
(2)安装:
一路默认;
(3)使用:
新建目录D:\git,右键鼠标,点击选择‘Git Bash Here’;
(4)生成ssh秘钥:
(5)dev02登录并加入ssh公钥:
(6)验证:
1)初始化 git 信息:
git config --global user.name "dev02"
git config --global user.email dev02@qq.com
2)git clone:
git clone git@172.16.1.90:java/app01.git
4、git和gitlab的配置(1)的更多相关文章
- 4、git和gitlab的配置(2)
4.10.使用 gitlib 模拟开发流程: 1.项目经理指定开发计划: project01 需求 开发者 完成日期 v1.0 首页 dev01 4.28 支付 dev02 4.30 2.rpm(项目 ...
- win10下git与gitlab安装与文件上传
目前了解到的版本管理工具有三种:gitlab GitHub 和 码云 个人感觉 gitlab 在公司用的较多 便于协同办公 GitHub各种资源有很多,适合个人使用 码云是中文版 便于入门 ...
- git安装以及gitlib配置
安装Git:详见http://www.cnblogs.com/xiuxingzhe/p/9300905.html 开通gitlab(开通需要咨询所在公司的gitlab管理员)账号后,本地Git仓库和g ...
- Gerrit与Gitlab同步配置replication&其他配置
一.Gerrit与Gitlab同步配置 当配置好gerrit环境后,还需要与现有gitlab库进行同步配置,否则会影响现有开发与打包流程. 1.安装gerrit replication插件 unzip ...
- 【Git】 GitLab简单使用
本例介绍简单实用GitLab,安装请参照[Git] GitLab服务器社区版安装与配置 1.用户和组的管理 a.创建组,在首页点击Create a group b.创建用户,在首页点击Add peop ...
- Jenkins中使用GitLab的配置
1. 概述 在Jenkins中从GitLab上拉取代码进行打包或测试. 2. 安装 Jenkins和GitLab默认已经安装好,安装过程此处不再赘述. 在Jenkins上安装Git和Gitlab插件, ...
- Git管理多个SSH密钥,Git多帐号配置
版权声明:转载须标明本文转自严振杰的博客 https://blog.csdn.net/yanzhenjie1003/article/details/69487932版权声明:转载必须注明本文转自严振杰 ...
- 本地docker搭建gitlab, 并配置ldap认证
基于Docker在Mac OS X系统中的部署和设置GitLab的具体过程如下: 1. 安装Docker for Mac (参见https://docs.docker.com/docker-for ...
- Git连接GitLab远程仓库
1.简介 远程仓库是指托管在网络上的项目仓库,现在互联网上有很多项目托管平台,比如github.gitlab等.为了不公开自己项目代码,可以在自己的服务器上搭建自己的项目仓库,最常见的是搭建GitLa ...
随机推荐
- [设计模式] 读懂UML图
类之间关系(由强到弱) realize(继承):三角+实线(指向类),继承类(SUV是一种汽车) generalization(实现):三角+虚线(指向接口),实现接口(汽车是一种车) composi ...
- Linux_交换分区SWAP
一.交换分区SWAP 1️⃣:交换分区SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用. 2️⃣:交换分区一般指定虚拟内存的大小 ...
- Ansible流程控制
Ansible流程控制 数据库操作问题: 数据库的操作问题,python需要依耐的模块MySQL-python . 数据库的操作 # 设置root的密码在,root的密码设置之后,创建用户和创建数据库 ...
- Scala 字符串插值器
Scala 提供了三种创新的字符串插值方法:s,f和raw,使用他们我们可以方便快捷的组合字符串. s 字符串插值器 在任何字符串前加上s,就可以直接在串中使用变量了,在生成字符串的时候会隐式调用其t ...
- web技术开发桌面应用
三款前端工程师桌面应用开发神器! http://mini.eastday.com/a/160630023107669-2.html 如果我告诉你,以后你们可以用前端语言(html5+css3+js)开 ...
- Arduino+AS608指纹锁避坑记
Arduino+AS608指纹锁避坑记 .title { text-align: center; margin-bottom: 0.2em } .subtitle { text-align: cent ...
- VMware vRealize Suite 8.3 发布 - 多云环境的云计算管理解决方案
概述 VMware vRealize Suite 是一种多云环境的云计算管理解决方案,为 IT 组织提供了一个基于 DevOps 和 ML 原则的基础架构自动化.一致运维和监管的现代平台. vReal ...
- 微服务架构(Microservices) ——Martin Flower
不知不觉到达了Sring Boot的学习中了,在学习之前,了解微服务架构是很有必要的,对于自己提升今后面试的软实力有很大帮助,在此写下. 让我们接下来看下Martin Flower 如何解释微服务架构 ...
- Jmeter(五十) - 从入门到精通高级篇 - jmeter 之模拟弱网进行测试(详解教程)
1.简介 在实际工作中,网络带宽一定不会是持续稳定的保持某一个值,而是有高有低.因此为了测试场景和实际能够无限的接近,所以我们需要模拟一下来达到效果.还有就是在实际的测试工作中,会因为业务需要,有时限 ...
- Camera Lens Coating
Camera Lens Coating Coating Progress 转换镜头,根据要求进行OEM和设计. 光学元件:望远镜.显微镜.相机和数码相机镜头.放大镜头和远摄镜头.定心镜头.投影镜头.投 ...