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分支

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美妆商城系统 SpringBoot + Vue 【毕业设计 资料 + 源码】

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 一、前言 使用技术栈 SpringBoot Vue My…

云贝教育 |【喜报】云贝学员轻松拿下腾讯云 TDSQL-TCP(PG版)证书 最新课程介绍

亲们&#xff0c;11月18日-数据库交付运维高级工程师-腾讯云TDSQL(PostgreSQL版)-TCP&#xff01;上课了&#xff01;&#xff01; 云贝学员刚刚出炉的(postgresql)版TCP证书 课程试听 点击链接即可转跳试听课 【云贝教育】腾讯云TDSQL(PG版)交付运维高级工程师TCP认证https…

灰度图处理方法

做深度学习项目图像处理的时候常常涉及到灰度图处理&#xff0c;这里对自己处理灰度图的方式做一个记录&#xff0c;后续有更新的话会在此更新 一&#xff0c;多维数组可视化 将多维数组可视化为灰度图 img_gray Image.fromarray(img, modeL) # 实现array到image的转换,m…

不能错过的2个方法,轻松学会如何备份系统!

​天有不测风云&#xff0c;电脑也有旦夕祸福&#xff0c;谁也不能预料到未来会发生什么意外状况&#xff0c;为了防止系统故障而导致的数据丢失和系统崩溃状况&#xff0c;学会定期备份系统是很重要的。 那么我们该如何备份系统呢&#xff1f;方法其实还是有很多种…

使用VC++设计程序:对于一幅256级灰度图像,求其一元熵值、二维熵值

数字图像处理–实验二B图像的一维熵与二维熵算法 本文主要是对图像进行一维熵以及二维熵的计算&#xff0c;下面附有实现的代码 文章目录 数字图像处理--实验二B图像的一维熵与二维熵算法一、 实验内容二、 一维熵1. 一维熵的定义2. 一维熵的C代码实现 三、 二维熵1. 二维熵的定…

【Android】画面卡顿优化列表流畅度五之下拉刷新上拉加载更多组件RefreshLayout修改

之前也写过类似组件的介绍&#xff1a; 地址&#xff1a;下拉刷新&上拉加载更多组件SmartRefreshLayout 本来打算用这个替换的&#xff0c;但在进行仔细研究发现不太合适。功能都很好&#xff0c;但嵌入不了当前的工程体系里。原因就是那啥体制懂的都懂。这样的组件需要改…

VUE组件的生命周期

每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤&#xff0c;比如设置好数据侦听&#xff0c;编译模板&#xff0c;挂载实例到 DOM&#xff0c;以及在数据改变时更新 DOM。在此过程中&#xff0c;它也会运行被称为生命周期钩子的函数&#xff0c;让开发者有机会在特定阶…

数字人,虚拟数字人——你看好数字人领域的发展吗?

你看好数字人领域的发展吗&#xff1f; 目录 一、虚拟人、数字人、虚拟数字人基本概念 1.1、虚拟人&#xff08;Virtual Person&#xff09; 1.2、 数字人&#xff08;Digital Human&#xff09; 1.3、虚拟数字人&#xff08;Virtual Digital Human&#xff09; 1.4、侧重…

chatGPT真的会改变我们的生活吗?

先不说生活影响有多大&#xff0c;工作职场影响很大&#xff0c;现在在职场&#xff0c;随处可见Chat GPT的身影 OpenAI 开发的 ChatGPT 和类似的人工智能工具在短时间内不会取代我们的工作。但是&#xff0c;在科技、媒体等许多行业中&#xff0c;它们可以帮助员工更好、更快地…

百度飞浆环境安装

前言&#xff1a; 在安装飞浆环境之前得先把pytorch环境安装好&#xff0c;不过关于pytorch网上教程最多的都是通过Anaconda来安装&#xff0c;但是Anaconda环境安装容易遇到安装超时导致安装失败的问题&#xff0c;本文将叫你如何通过pip安装的方式快速安装&#xff0c;其实这…

PHP 论文发表管理系统mysql数据库web结构layUI布局apache计算机软件工程网页wamp

一、源码特点 PHP 论文发表管理系统是一套完善的web设计系统mysql数据库 &#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 php 论文发表系统1 代码 https://download.csdn.net/download/qq_412213…

一则DNS被重定向导致无法获取MySQL连接处理

同事反馈xwik应用端报java exception 获取MySQL连接超时无法连接到数据库实例 经过告警日志发现访问进来的IP地址数据库端无法被解析&#xff0c;这里可以知道问题出现在Dns配置上了 通过以上报错检查/etc/resolve.conf 发现namesever 被重定向设置成了114.114.114.114 域名 …