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 ...
随机推荐
- [ML] 高德软件的路径规划原理
路径规划 Dijkstra s:起点:S:已知到起点最短路径的点:U:未知到起点最短路径的点 Step 1:S中只有起点s,从U中找出路径最短的 Step 2:更新U中的顶点和顶点对应的路径 重复St ...
- Linux_源码安装包管理理论概述
一.源码包基本概述 1️⃣:源码包的编译用到了linux系统里的编译器,通常源码包都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言 2️⃣:Linux上的C语言编译器叫做gcc,利用 ...
- Linux服务之DNS服务篇
一.DNS服务概述 DNS(Domain Name System)域名系统,在TCP/IP 网络中有非常重要的地位,能够提供域名与IP地址的解析服务. DNS 是一个分布式数据库,命名系统采用层次的逻 ...
- JQuery Ajax 发送请求成功后却接收不到任何响应数据问题
问题描述 使用 JQuery Ajax 向后端服务器发送请求,服务器也收到请求返回了响应数据,但是 Ajax 却收不到任何响应数据. 举例如下: $.ajax({ type: "post&q ...
- 统计行数、文件夹个数、文件个数的相关shell命令
极客君最近做项目,刚好遇到需要统计一些sql文件数量的问题,用到一些实用的shell命令,记录下来,以后万一还能用上呢? 如果在终端不打开文件看到一共多少行,则可以使用wc命令来实现: wc -l [ ...
- mysql数据库-日志管理
MySQL 支持丰富的日志类型 事务日志:transaction log 事务日志的写入类型为"追加",因此其操作为"顺序IO":通常也被称为:预写式日志 wr ...
- 字符串算法(string_algorithm)
format 作用 格式化输出对象,可以不改变流输出状态实现类似于printf()的输出 头文件 #include <boost/format.hpp> using namespace b ...
- Linux(CentOS7)下配置多个tomcat
记录 Linux(CentOS7) 下配置多个 tomcat 的操作过程. 一.下载tomcat 前提:安装配置好jdk环境,未配置可参考Linux(CentOS7)下安装jdk1.8. 从 tomc ...
- 4. springmvc底层原理2
Spring mvc 是子容器 Spring 是 父容器 =================================================================== pub ...
- nginx的请求处理
nginx的请求处理¶ nginx使用一个多进程模型来对外提供服务,其中一个master进程,多个worker进程.master进程负责管理nginx本身和其他worker进程. 所有实际上的业务 ...