git服务器搭建

P1 kube-node2服务器

互联网已经存在的大型git服务器【版本控制服务器】

https://github.com【国外网站,速度慢】

https://about. gitlub.com/【国外网站,速度慢】

https://gitee.com【国内阿里的git网站,可以注册使用】

环境准备,使用之前的kube-node2主机建本地 kube-node2 服务器:导入中文版 kube-node2 镜像

上传gitlab_zh.tar镜像文件到root家目录下

[root@kube-node2 ~]# docker load -i gitlab_zh.tar #向docker中,导入镜像gitlab_zh.tar

[root@kube-node2 ~]# docker images

要想以ssh的方式访问kube-node2,会和物理机的22端口冲突,修改主机ssh的端口为2022

[root@kube-node2 ~]# vim /etc/ssh/sshd_config

 17 Port 2022

[root@kube-node2 ~]# systemctl restart sshd

[c:\~]$ ssh root@192.168.1.22 2022 #Ctrl + D退出xshell远程连接,重新连接加上端口2022

启动gitlab容器

##【docker run】 根据镜像启动一个容器;【-d】 指定从后台运行容器;

##【-h】 设置容器主机名;--name 给容器命名,容器命名必须是唯一的;

##【-p】端口映射,宿主机端口:容器端口;【-v】 持久卷映射,真实目录:容器内目录

[root@kube-node2 ~]# docker run -d -h gitlab --name gitlab -p 443:443 -p 80:80 -p 22:22 --restart always -v /srv/gitlib/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v /srv/gitlab/data:/var/opt/gitlab gitlab_zh:latest

#查看容器的状态信息,状态必须是:... (healthy),包含starting 代表正在启动中

#docker rm -i 【ID号】 强制删除容器

[root@kube-node2 ~]# docker ps

CONTAINER ID    IMAGE    COMMAND    CREATED   STATUS   PORTS   NAMES

c0acff2ba797       kube-node2_zh:latest    "/assets/wrapper"   3 minutes ago       Up 3 minutes (healthy)   0.0.0.0:22->22/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   kube-node2

初始化 gitlab 服务器:密码需大于8位

- [x] 浏览器访问 192.168.1.22 即可,输入新密码 1234.com【任意定义】

输入默认用户名: root,密码:1234.com

添加 gitlab项目

- 创建群组 group:使用群组管理项目和人员是非常好的方式

- 创建项目 project:存储代码地方,里面包含问题列表、维基文档及其他一些 gitlab 功能

- 创建成员 member:添加你的团队成员或其他人员到 gitlab

创建群组

选择【管理区域】

选择【New group】

设置群组路径 devops,群组名称devops,描述devops,可见等级为公开

创建项目

选择【管理区域】

选择【New project】

设置项目属于的组devops,项目名称myweb,项目描述myweb,可见等级公开

使用gitlib

P1 用户管理

创建用户

选择【管理区域】

选择【New user】

设置【姓名zhangzhigang】,【用户名zzg】和【电子邮箱zhangzg@tedu.cn

[姓名]     #类似昵称;

[用户名]   #此为普通用户的登录账号名;

选择【编辑】

为用户设置密码:1234.com

将用户添加到组:oot 用户将新用户加入组中,并设置新用户为“主程序员”

选择【管理区域】,点击【Groups: 】

点击组【devops】

选择用户,为用户设置类别,点击【增加用户到群组】

为项目添加新的管理用户

选择【管理区域】,点击【Projects: 】,点击【devops/myweb】,点击名称【myweb】,选择【设置】,选择【成员】

选择【要邀请的成员】,选择【角色权限】,点击【添加到项目即可】

#因为用户zzg已经在组devops中了,所以用户zzg默认就属于项目,不需要重复添加;

#其他单个用户可以安装此步骤进行添加;

使用普通用户登录:用户在第一次登录时需要修改密码,退出当前管理员账号

输入用户名 zzg 和密码 1234.com, 选择【登录】

修改密码,这里和原密码相同【1234.com】

使用普通账号zzg,密码1234.com,重新登录

代码管理:查看项目详细信息【可以看到对应的git使用命令】

通过 http 协议上传代码:将本地仓库推送至服务器,在pycharm主机操作

[root@kube-node1 ~]# cd git_lesson/myweb/ #进入到本地myweb的git仓库下

[root@kube-node1 myweb]# git remote add origin http://192.168.1.22/devops/myweb.git

[root@kube-node1 myweb]# git push -u origin --all #将本地git仓库下的所有分支,推送到远程服务器的origin仓库中

Username for 'http://192.168.1.22': zzg   #输入项目管理用户:zzg

Password for 'http://zzg@192.168.1.22':  #输入项目管理用户的密码:1234.com

#将本地git仓库下的所有标签,也推送到远程服务器的origin仓库中

[root@kube-node1 myweb]# git push -u origin --tags

Username for 'http://192.168.1.22': zzg   #输入项目管理用户:zzg

Password for 'http://zzg@192.168.1.22':  #输入项目管理用户的密码:1234.com

在 gitlib 服务器上查看推送结果,推送成功,可以查看【提交】【分支】和【标签】*

[root@kube-node1 myweb]# vim README.md

#git test

this is a test

```python

print('Hello World!')

```

[root@kube-node1 myweb]# git add .

[root@kube-node1 myweb]# git commit -m 'add lines to README.md'

[root@kube-node1 myweb]# git push #重复再次推送代码时,使用git push即可

Username for 'http://192.168.1.22': zzg     #输入项目管理用户:zzg

Password for 'http://zzg@192.168.1.22':     #输入项目管理密码:1234.com

通过 ssh 上传代码:将本地仓库推送至服务器,配置SSH免密登陆

[root@kube-node1 myweb]# ssh-keygen

[root@kube-node1 myweb]# cat /root/.ssh/id_rsa.pub   #查看公钥,复制公钥

在kube-node2服务器上配置SSH免密

[root@kube-node1 myweb]# > /root/.ssh/known_hosts

[root@kube-node1 myweb]# git remote #查看kube-node2远程服务器仓库在本地的映射

[root@kube-node1 myweb]# git remote remove origin

[root@kube-node1 myweb]# git remote add origin git@192.168.1.22:devops/myweb.git #使用SSH协议添加origin默认仓库

[root@kube-node1 myweb]# git push #推送版本库【.git】中数据,不用输入用户名和密码

[root@kube-node1 myweb]# vim README.md

#git test

this is a test

​```python

print('Hello World!')

print('Hello World!')

​```

[root@kube-node1 myweb]# git add .

[root@kube-node1 myweb]# git commit -m 'modify README.md'

[root@kube-node1 myweb]# git push #不需要输入密码,推送成功

远程分支管理

P1 远程仓库

远程仓库基础

- 远程仓库是指托管在因特网或其他网络中的你的项目的版本库

- 可以有多个远程仓库,通常有些仓库对你只读,有些则可读写

- 与他人协作涉及管理远程仓库,以及根据需要推送或拉取数据

- 管理远程仓库包括添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等

查看远程仓库:如果你已经克隆了仓库,那么至少应该能看到 origin,这是Git 给你克隆的仓库服务器的默认名字

查看远程仓库

[root@kube-node1 ~]# cd /root/git_lesson/grit/

[root@kube-node1 grit]# git remote #查看kube-node2远程服务器仓库在本地的映射

[root@kube-node1 grit]# git remote -v #查看仓库的使用详情【fetch 拉取数据】,【push 推送数据】

添加远程仓库:运行 git  remove  add  < shortname >< url > 添加一个新的远程 Git 仓库

[root@kube-node1 grit]# git remote add pb https://github.com/paulboone/ticgit #将远程的github服务器上的仓库,添加到本地

[root@kube-node1 grit]# git remote -v #查看使用详情【fetch 拉取数据】,【push 推送数据】

本地已经有了远程服务器的仓库pb, 使用fetch拉取远程仓库中的数据到本地仓库

[root@kube-node1 grit]# git fetch pb #拉取的仓库有两个分支

[root@kube-node1 grit]# git remote show origin #查看远程仓库origin更多的信息

[root@kube-node1 grit]# git remote rename pb paul #将在本地映射的远程仓库的名称修改为paul

[root@kube-node1 grit]# git remote -v #查看在本地映射的远程仓库,改名成功

[root@kube-node1 grit]# git remote rm paul #移除远程仓库在本地的映射paul

使用远程分支

- 远程引用是对远程仓库的引用(指针),包括分支、标签等等

- 以通过 git   ls-remote  < remote > 获得远程引用的完整列表

- 远程跟踪分支是远程分支状态的引用。它们是无法移动的本地引用

- 一旦进入了网络通信,Git 就会为你移动它们以精确反映远程仓库的状态

远程分支命名

#远程指针【origin/master】和本地指针【master】同时指向同一次提交

#1》在本地不能直接移动远程分支的指针,是通过fetch拉取时移动的;

#2》本地的分支可以通过不断的提交进行移动;

#3》远程分支和本地分支不会自动合并,需要我们自己通过merge进行分支合并;

推送分支

##向远程服务器的仓库origin推送分支serverfix【这里不需要实际操作】

##如果远程服务器有分支serverfix,则会更新分支中的代码

##如果远程服务器中没有分支serverfix,则会创建该分支

[root@kube-node1 ~]# cd /root/git_lesson/myweb/ #向远程服务器推送分支

[root@kube-node1 myweb]# git branch #查看分支

[root@kube-node1 myweb]# git branch b1 #创建分支b1

[root@kube-node1 myweb]# git checkout b1 #切换到分支b1下

[root@kube-node1 myweb]# cp /etc/issue . #拷贝issue文件到当前目录下

[root@kube-node1 myweb]# git add . #将此次修改添加到暂存区中

[root@kube-node1 myweb]# git commit -m 'add issue' #提交

将本地仓库master分支,推送到远程的git服务器上,因为修改的是分支b1,master分支没有做任何操作,推送失败

[root@kube-node1 myweb]# git push origin master

Everything up-to-date

将分支b1,推送到远程版本库下,分支b1存在则会自动合并数据;分支b1不存在,会自动创建分支b1

[root@kube-node1 myweb]# git push origin b1

在kube-node2服务器上查看分支更新

git pull【跟踪分支】    #拉取远程服务器数据时,会自动合并远程分支和本地分支;

git fetch【拉取分支】    #下载远程服务器分支到本地,但不会自动合并远程分支和本地分支,需要自己合并;

【git pull】和【git  fetch】的演示

[root@kube-node1 myweb]# cd /root/git_lesson/

[root@kube-node1 git_lesson]# git clone http://192.168.1.22/devops/myweb.git  newweb

在myweb仓库的b1分支下修改数据,提交到本地仓库

[root@kube-node1 git_lesson]# cd /root/git_lesson/myweb/

[root@kube-node1 myweb]# git branch #查看当前所处的分支,b1分支

[root@kube-node1 myweb]# vim issue #修改issue文件

\S

Kernel \r on an \m

Kernel \r on an \m

Kernel \r on an \m

[root@kube-node1 myweb]# git add .

[root@kube-node1 myweb]# git commit -m "modified issue"

在myweb仓库的master分支下修改数据,提交到本地仓库

[root@kube-node1 myweb]# git checkout master

[root@kube-node1 myweb]# cp /etc/motd .

[root@kube-node1 myweb]# git add .

[root@kube-node1 myweb]# git commit -m "add motd"

推送本地仓库中的数据到远程kube-node2服务器上

[root@kube-node1 myweb]# git push #成功

在newweb仓库下,验证push和fetch的区别

[root@kube-node1 myweb]# cd /root/git_lesson/newweb/

[root@kube-node1 newweb]# git pull #将远程git服务器上的数据下载下来,并且分支会自动合并

[root@kube-node1 newweb]# git fetch origin b1 #【fetch】 只会从origin仓库中下载分支b1

##【pull】 会将分支b1从origin仓库中下载下来,并且会和本地的b1分支进行合并

##会打开一个合并分支的对话框

##合并提示信息:Merge branch 'b1' of http://192.168.1.118/devops/myweb

[root@kube-node1 newweb]# git pull origin b1

[root@kube-node1 newweb]# git push origin --delete b1 #删除远程服务器,origin仓库中b1分支

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/150916.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

zabbix中监控数据,报错返回给钉钉查看

### 在钉钉中创建群聊(同组的同学创建一个群聊)&#xff0c;在群里面添加自定义机器人 1.通过自定义webhook接入自定义服务 webhook&#xff1a;记住webhook的地址 安全设置&#xff1a;设置加签&#xff0c;只有信息内容包含签才会被机器人发送。 2.配置钉钉告警脚本 #### **安…

从零搭建微服务架构:Spring Boot与Nacos完美整合

&#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 从零搭建微服务架构&#xff1a;Spring Boot与Nacos完美整合 前言第一&#xff1a;服务注册与发现第二&#xff1a;配置中心第三&#xff1a;报错问题解决第四&#xff1a;什…

Solidity案例详解(四)投票智能合约

该合约为原创合约&#xff0c;功能要求如下 在⼀定时间能进⾏投票超过时间投票截⽌&#xff0c;并投赞同票超过50%则为通过。 使⽤safeMath库&#xff0c;使⽤Owner 第三⽅库拥有参与投票权的⽤户在创建合约时确定Voter 结构 要有时间戳、投票是否同意等&#xff1b;struct 结构…

MATLAB中uiresume函数用法

目录 语法 说明 示例 按下按钮后恢复执行 使用函数调用恢复执行 uiresume函数的功能是恢复暂停程序的执行。 语法 uiresume uiresume(f) 说明 uiresume 恢复与当前图窗 (gcf) 关联的对应 uiwait 调用暂停的程序执行。 uiresume(f) 恢复与图窗 f 关联的对应 uiwait 调用…

PbootCMS 应用快速迁移至浪潮信息 KeyarchOS 云服务器

本文我们以 PbootCMS 应用为例&#xff0c;详细介绍如何使用 X2Keyarch 迁移工具将其从 CentOS 系统迁移到浪潮信息 KeyarchOS 系统。 背景介绍 众所周知&#xff0c;CentOS 是最流行的红帽克隆版&#xff0c;因为免费&#xff0c;所以它的安装量甚至比红帽本身要大得多。本来…

人工智能如何重塑体验为先的汽车行业

面向汽车行业用户体验的 AI 人工智能的影响力继续在各个主要行业中迅速蔓延&#xff0c;全球各地的公司都开始大力投资 AI 技术&#xff0c;以提高自身的竞争优势。未来的趋势表明&#xff0c;企业如果不立即采用人工智能战略&#xff0c;就可能会远远落后于竞争对手。 AI 和…

边缘智能网关:新能源时代的数据守护者

一、新能源时代的挑战与机遇 随着全球气候变化和环境问题日益严重&#xff0c;新能源的开发利用成为了世界各国共同关注的焦点。新能源的发展不仅有助于减少对化石能源的依赖&#xff0c;降低温室气体排放&#xff0c;还能带动经济的可持续发展。然而&#xff0c;新能源的普及和…

【云栖2023】姜伟华:Hologres Serverless之路——揭秘弹性计算组

本文根据2023云栖大会演讲实录整理而成&#xff0c;演讲信息如下&#xff1a; 演讲人&#xff1a;姜伟华 | 阿里云计算平台事业部资深技术专家、阿里云实时数仓Hologres研发负责人 演讲主题&#xff1a;Hologres Serverless之路——揭秘弹性计算组 实时化成为了大数据平台的…

day23_mysql

今日内容 零、 复习昨日 一、函数[了解,会用] 二、事务[重点,理解,面试] 三、数据库范式 零、 复习昨日 见晨考 一、函数 字符串函数数学函数日期函数日期-字符串转换函数流程函数 1.1 字符串函数 函数解释CONCAT (string2 [,... ]) 连接字串LENGTH (string )string长度REPLAC…

【数据结构】单链表基本操作的实现

【单链表的头插和尾插】//无头结点 #include<stdio.h> #include<stdlib.h> typedef struct LNode {int date;struct LNode *next; }LNode,*LinkList; LinkList great_LinkList(LinkList L)//头部插入 {LinkList s;int x,j1;scanf("%d",&x);while(x…

如何使用 Github Action 管理 Issue

本文作者为 360 奇舞团前端开发工程师 Daryl 前言 很多小伙伴打开 github 上的仓库都只使用Code查看代码&#xff0c;或者只是把 github 当成一个代码仓库&#xff0c;但是 github 还提供了很多好用的功能。 其中&#xff0c;GitHub Action就是一个很好用的功能&#xff0c;本文…

基于 Amazon EKS 搭建开源向量数据库 Milvus

一、前言 生成式 AI&#xff08;Generative AI&#xff09;的火爆引发了广泛的关注&#xff0c;也彻底点燃了向量数据库&#xff08;Vector Database&#xff09;市场&#xff0c;众多的向量数据库产品开始真正出圈&#xff0c;走进大众的视野。 根据 IDC 的预测&#xff0c;…

python采集小破站视频弹幕

嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 环境使用]: Python 3.8 Pycharm模块使用]: import requests 数据请求 import jieba 分词 import wordcloud 词云 import re 正则通过爬虫程序采集数据 分析数…

微信小程序渲染的富文本里面除了img标签外什么都没有,该如何设置img的大小

微信小程序富文本渲染&#xff1a; <rich-text nodes"{{content}}"style"{{style}}" ></rich-text> content是接口得到的值 let cont object.contentlet a cont.replace(/<img/gi,<img style"max-width:94%;height:auto;margi…

Kafka快速入门

文章目录 Kafka快速入门1、相关概念介绍前言1.1 基本介绍1.2 常见消息队列的比较1.3 Kafka常见相关概念介绍 2、安装Kafka3、初体验前期准备编码测试配置介绍 bug记录 Kafka快速入门 1、相关概念介绍 前言 在当今信息爆炸的时代&#xff0c;实时数据处理已经成为许多应用程序和…

python科研绘图:P-P图与Q-Q图

目录 什么是P-P图与Q-Q图 分位数 百分位数 Q-Q图步骤与原理 Shapiro-Wilk检验 绘制Q-Q图 绘制P-P图 什么是P-P图与Q-Q图 P-P图和Q-Q图都是用于检验样本的概率分布是否服从某种理论分布。 P-P图的原理是检验实际累积概率分布与理论累积概率分布是否吻合。若吻合&#xf…

HPC 工作负载管理 —— IBM Spectrum LSF Suite

全面的工作负载管理解决方案&#xff0c;通过增强用户和管理员体验以及实现规模性能来简化 HPC。 IBM Spectrum LSF Suites 是面向分布式高性能计算 (HPC) 的工作负载管理平台和作业调度程序。基于 Terraform 的自动化现已可用&#xff0c;该功能可在 IBM Cloud 上为基于 IBM …

c语言:解决数组元素右旋问题,时间复杂度O(N)

题目&#xff1a; 给一个数组&#xff0c;如【1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6&#xff0c;7】,k3。 要求得到新数组【5&#xff0c;6&#xff0c;7&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4】。 方法一&#xff0c;思路和…

GPT模型支持下的Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例实践应用

随着航空、航天、近地空间等多个遥感平台的不断发展&#xff0c;近年来遥感技术突飞猛进。由此&#xff0c;遥感数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量也大幅增长&#xff0c;使其越来越具有大数据特征。对于相关研究而言&#xff0c;遥感大数据的出现为其提…

EtherCAT从站EEPROM组成信息详解(2):字8-15产品标识区

0 工具准备 1.EtherCAT从站EEPROM数据&#xff08;本文使用DE3E-556步进电机驱动器&#xff09;1 字8-字15产品标识区 1.1 产品标识区组成规范 对于不同厂家和型号的从站&#xff0c;主站是如何区分它们的呢&#xff1f;这就要提起SII的字8-字15区域存储的产品标识&#xff…