【第九节】Git 服务器搭建

news/2024/12/21 20:26:51/

目录

前言

一、 使用裸存储库搭建 Git 服务器

1.1 安装 Git

1.2 创建裸存储库

1.3 配置 SSH 访问

1.4 克隆仓库

二、 使用 GitLab 搭建 Git 服务器

2.1 安装 GitLab

2.2 配置 GitLab

2.3 创建项目

2.4 生成 SSH 密钥

2.5 添加 SSH Key

三、 使用 GitLab 管理项目

3.1 配置用户信息

3.2 克隆项目到本地

3.3 上传文件到 GitLab


前言

        在软件开发中,Git 是一个广泛使用的版本控制系统。虽然 GitHub 提供了免费的远程仓库服务,但有时我们需要搭建自己的 Git 服务器,以便更好地管理和控制代码。本文将介绍如何使用裸存储库和 GitLab 搭建 Git 服务器,并详细说明如何管理项目。


一、 使用裸存储库搭建 Git 服务器

1.1 安装 Git

在 Ubuntu 服务器上安装 Git:

sudo apt install git

在 CentOS/RedHat 系统上安装 Git:

yum -y install git-core

在 Fedora 系统上安装 Git:

dnf install git

1.2 创建裸存储库

首先,创建一个 Git 用户组和用户:

groupadd git
useradd git -g git

然后,切换到 Git 用户并创建裸存储库:

sudo su - git
cd /home
mkdir gitrepo
chown git:git gitrepo/
cd gitrepo
git init --bare myproject.git
chown -R git:git myproject.git

1.3 配置 SSH 访问

将需要访问的用户公钥添加到 `/home/git/.ssh/authorized_keys` 文件中:

cd /home/git/
mkdir .ssh
chmod 755 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys

将用户的公钥(位于 `id_rsa.pub` 文件中)添加到 `authorized_keys` 文件中,每行一个公钥。

1.4 克隆仓库

使用以下命令克隆仓库到本地:

git clone git@192.168.17.11:/home/gitrepo/myproject.git

192.168.17.11 为 Git 所在服务器 ip ,你需要将其修改为你自己的 Git 服务 ip。

二、 使用 GitLab 搭建 Git 服务器

2.1 安装 GitLab

在 Ubuntu 上安装 GitLab:

sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://yourdomain" apt-get install gitlab-ee

在 CentOS 上安装 GitLab:

sudo EXTERNAL_URL=101.132.XX.XX yum install -y gitlab-ee

2.2 配置 GitLab

安装完成后,打开浏览器访问 `http://yourdomain`,设置管理员账户。当出现类似如下回显信息,表示 GitLab 已经安装成功。

067441ed866841c98d853184aee7608b.png

 

2.3 创建项目

登录 GitLab

获取登录密码:

sudo cat /etc/gitlab/initial_root_password

结果如下所示:

2aed9fef75a44205b96abd5d0fd3d4d5.png

 用用户名"root"登录

14dadec793524eec8c289660572d28c0.png

创建一个新的项目:
1. 点击 "Create a project"。

5fa5a451872149d38e56b828d113bd82.png

 


2. 设置项目名称和 URL。

e91afd1eaad5482fbc5e4de212ef1f9e.png


3. 点击 "Create project"。

 

2.4 生成 SSH 密钥

生成 SSH 密钥对:

ssh-keygen

查看并复制公钥:

cat .ssh/id_rsa.pub

2.5 添加 SSH Key

在 GitLab 项目页面中,点击 "Add SSH key"

d78c339f798349b496e7527497550d9d.png

将公钥文件 id_rsa.pub 中的内容粘贴到 Key 所在的文本框中

9b6f2651c3bf469bb4fcdb8624250159.png

然后点击 "Add key"完成后,如下所示

b1ad67e5d5b44fd78f18a040b4100f4c.png

复制 Clone 链接,在进行克隆操作时需要使用

b638904eae01405b921dad07359fb63d.png

三、 使用 GitLab 管理项目

3.1 配置用户信息

配置 Git 用户信息:

git config --global user.name "testname"
git config --global user.email "abc@example.com"

3.2 克隆项目到本地

克隆项目到本地:

git clone git@101.132.XX.XX:root/mywork.git

3.3 上传文件到 GitLab

进入项目目录并上传文件:

cd mywork/
echo "test" > test.sh
git add test.sh
git commit -m "Add test.sh"
git push -u origin main

在网页中查看上传的 test.sh 文件已经同步到 GitLab 服务器

270a872123a3440b8c28c4d75a7124cd.png

 

 

 


http://www.ppmy.cn/news/1557008.html

相关文章

智源大模型通用算子库FlagGems四大能力升级 持续赋能AI系统开源生态

FlagGems是由智源研究院于2024年6月推出的面向多种AI芯片的开源大模型通用算子库。FlagGems使用Triton语言开发,在Triton生态开源开放的基础上,为多种AI芯片提供开源、统一、高效的算子层生态接入方案。FlagGems沿着统一的中间语言、统一的算子接口和统一…

条款24:若所有参数皆需类型转换,请为此采用非成员函数

条款24:若所有参数皆需类型转换,请为此采用非成员函数 设计一个表示有理数的类时,允许从整数隐式转换为有理数是有用的: class Rational { public:Rational(int numerator 0, // 该构造函数没有explicit限制;int denominator …

linux下操作es及kibana的操作记录

背景:工作中后面开始用es和kibana了,为了方便后面的操作,特记录一下,好多命令实在是记不住了,😄 kibana的操作 1.查看所有的索引的命令 GET /_cat/indices2.创建索引的命令 PUT /es_dsj_6c_jky_yunzhe_…

【机器学习】机器学习的基本分类-强化学习-REINFORCE 算法

REINFORCE 算法 REINFORCE 是一种基于策略梯度的强化学习算法,直接通过采样环境中的轨迹来优化策略。它是策略梯度方法的基础实现,具有简单直观的优点。 核心思想 目标函数 最大化策略的期望回报: ​​​​​​​ …

SSL Version 2 and 3 Protocol Detection漏洞修复

使用 IIS Crypto 工具 IIS Crypto 是一个免费工具,使管理员能够在 Windows Server 2008,2012,2016 和 2019 上启用或禁用协议,密码,哈希和密钥交换算法。它还允许您重新排序 IIS 提供的 SSL / TLS 密码套件&#xff0c…

基于GRU门控循环神经网络的多分类预测【MATLAB】

随着深度学习的不断发展,循环神经网络(RNN)在处理时间序列和自然语言处理等领域表现出了强大的能力。然而,传统RNN存在梯度消失和梯度爆炸问题,导致其在长序列任务中的表现受限。为了应对这些问题,门控循环…

【开发】回归 Web 应用的基础

文章目录 回归 Web 应用的基础CSSJavaScriptAjaxjQueryAngularJSReactVue.js其他框架打包工具渐进增强过犹不及回归本源回归 Web 应用的基础 最初,只有 HTML。第一个正式的 HTML 规范专注于语义标记,其中仅包含少量样式标签和属性。HTML 文档的渲染完全由浏览器决定。 这个…

<javascript><css><nodejs>使用express构建一个本地服务器,使用http获取服务器图片和视频,网页端grid布局显示

前言 本文是一个前端示例,是基于nodejs使用express构建一个简单的服务器,并扫描本地资源文件夹,获取视频和图片,网页端通过http来向服务器请求,并将返回的资源在网页端程序,布局为grid。 环境配置 系统&am…