【第九节】Git 服务器搭建

devtools/2024/12/21 20:19:42/

目录

前言

一、 使用裸存储库搭建 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/devtools/144168.html

相关文章

高云GW5AT系列FPGA在接口扩展和桥接领域的应用方向探讨分享

作者:Hello,Panda 大家早上好、中午好、下午好、晚上好,熊猫君有一阵子没有学习了,实在是不得闲,最近发生的事情真的挺多的。今天刷了一下国产Fpga的网站,发现高云新出的Arora V系列的GW5AT系列的FPGA在接…

【真人模型】Stable Diffusion:人脸特美的人像摄影大模型

大家好我是安琪! AI绘画的出现,将会带来新一轮的历史变革,具有无限的能力和潜力。如同200年前摄影技术发明时的情景一样,我们再度面临“绘画是什么”这样的问题。 今天和大家分享一个基于SDXL的真人大模型:wuhaXL_re…

LoadBalancer负载均衡和Nginx负载均衡区别理解

LoadBalancer和Nginx都是用来做负载均衡用的,那二者有什么区别呢? Nginx服务器端的负载均衡: 所有请求都先发到nginx,然后再有nginx转发从而实现负载均衡。LoadBalancer是本地的负载均衡: 它是本地先在调用微服务接口…

React 19新特性探索:提升性能与开发者体验

React作为最受欢迎的JavaScript库之一,不断推出新版本以应对日益复杂的应用需求。React 19作为最新的版本,引入了一系列令人兴奋的新特性和改进,旨在进一步提升应用的性能、开发效率和用户体验。 本文将深入探讨React 19的新特性,…

Gin-vue-admin(2):项目创建前端一级页面和二级页面

目录 创建一级页面创建二级页面 创建一级页面 view目录下新建一个my&#xff0c;Index.vue <template></template><script> export default {name:My, } </script><script setup> import {ref} from vue const myNameref("name") &…

深入理解数据结构:数组、链表与列表

概述&#xff1a; 在编程的世界里&#xff0c;数据结构如同构建高楼大厦的基石&#xff0c;其中数组、链表和列表是最为常见且基础的数据结构。本文将深入探讨这三种数据结构的定义、基本概念、常用操作、常见类型、优点和局限性以及它们在实际编程中的应用。通过详细的解释和 …

15.3、陷阱技术 入侵容忍 隐私保护技术

目录 网络攻击陷阱技术与应用蜜罐主机技术陷阱网络技术三代陷阱网络网络攻击陷阱技术应用入侵容忍及系统生存技术入侵容忍及系统生存技术应用隐私保护技术网络安全的前沿技术发展动向 网络攻击陷阱技术与应用 攻击陷阱技术也叫诱骗技术&#xff0c;它是一种主动防御的方法&…

Gunicorn启动Django服务

使用 Gunicorn 来运行 Django 项目可以提升性能&#xff0c;特别是在生产环境中。Gunicorn 是一个 Python WSGI HTTP 服务器&#xff0c;适合用于在多个工作进程中运行 Python 的 Web 应用。以下是如何在本地使用 Gunicorn 启动 Django 项目的步骤&#xff1a; 步骤 1: 安装 G…