Git服务器集成(一)

news2024/11/24 20:48:53

在这里插入图片描述

本篇文章旨在分享本人在学习Git时的随笔记🤩

文章目录

    • Git 远程服务器
      • 1、下载 Git 软件(linux版本)
      • 2、安装 Git 软件
        • 2.1 解压 Git
        • 2.2 安装依赖
        • 2.3 删除旧版 Git
        • 2.4 编译、安装 Git
        • 2.5 配置环境变量
        • 2.6 建立链接文件
        • 2.7 测试安装
      • 3、创建 Git 用户
      • 4、SSH 免密登录
        • 4.1 服务端操作
        • 4.2 客户端操作
      • 5、创建 Git 版本库
        • 5.1 创建文件目录
        • 5.2 初始化版本库
      • 6、远程访问Git 版本库
        • 6.1 将远程仓库克隆到本地
        • 6.2 提交文件到本地仓库
        • 6.3 将本地仓库同步到远程仓库
        • 6.4 查看远程仓库
    • 最后

Git 远程服务器

  之前所有的操作都是基于本地机器完成的。如果在公司中,一个项目是共用一个版本库的。那么所有的开发人员都应该对同一个版本库进行操作。因为Git软件本身是用于 Linux 系统开发所设计的版本管理软件,项目搭建共享版本库也应该以linux 系统为主。接下来演示一下 CentsOS服务器中搭建 Git 服务器。

1、下载 Git 软件(linux版本)

  官网下载地址:下载地址

将下载后的压缩文件上传到 Linux 系统中
iKKiD3.png

2、安装 Git 软件

2.1 解压 Git

# 将压缩文件解压到自定义位置
tar -zxvf git-2.38.1.tar.gz -C /opt/module/

# 可以更改名字,变得简短一些,好操作

cd /opt/module

mv git-2.38.1/ git 

2.2 安装依赖

解压后,我们需要编译源码,不过在此之前需要安装编译所需要的依赖,耐心等待安装完成,中途出现提示的时候输入y并按回车。

# 
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
iKKf55.png

2.3 删除旧版 Git

安装编译源码所需依赖的时候,yum操作回自动安装旧版本的 Git。

iKK4i8.png

卸载旧版Git

# 删除旧版本的 Git
yum -y remove git
iKKAbZ.png

2.4 编译、安装 Git

# 进入到Git软件的解压目录
cd /opt/module/git
# 编译时,prefix设定为Git软件安装目录
make prefix=/usr/local/git all
# 安装Git
make prefix=/usr/local/git install
iKKDzF.png

2.5 配置环境变量

修改 linux 系统中 /etc/profile 文件,配置环境变量

# 配置环境变量
export PATH=$PATH:/usr/local/git/bin
# 刷新环境,让环境变量立即生效
source /etc/profile

2.6 建立链接文件

# git 安装路径是 /usr/local/git,不是默认路径
ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack
ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack

2.7 测试安装

# 获取git软件版本
git --version

下面出来版本号表示安装成功。

3、创建 Git 用户

  因为 Git 服务器需要安装在 linux 系统上,当使用远程客户端操作时,需要提供相应的 Git 账号进行提交的,如果你的仓库文件的用户不是 git 的话,是 root 用户或者别的用户,那么你 git push。它是不允许提交的。可以创建 git 用户或者修改文件夹的权限。

# 增加用户
adduser git
# 设定密码
passwd git

4、SSH 免密登录

4.1 服务端操作

# 进入用户目录
cd /home/git
# 在git用户根目录创建.ssh目录
sudo mkdir .ssh
sudo touch .ssh/authorized_keys
# 设定.ssh目录,authorized_keys的权限
sudo chmod -R 700 /home/git/.ssh
sudo chmod 600 /home/git/.ssh/authorized_keys

4.2 客户端操作

# 在客户端生成SSH密钥
# 默认生成的密钥用户就是当前用户,需要和之前的全局配置保持一致
user.name=18801@LAPTOP-J9IRK5BM
user.email=18801@LAPTOP-J9IRK5BM
# 按照提示三次回车即可
ssh-keygen -t rsa
iLZGip.png

在用户根目录的.ssh文件夹内,id_rsa.pub就是我们要的公钥

iLZz3k.png

将文件中的内容复制到服务器端的.ssh/authorized_keys文件中

iLZeDx.png

5、创建 Git 版本库

5.1 创建文件目录

# 进入用户目录
cd /home/git
# 创建版本库目录
mkdir git-rep 
# 设定文件所属用户
sudo chown git:git git-rep

5.2 初始化版本库

# 进入仓库目录
cd /home/git/git-rep
# 初始化仓库,和前面的git init略有不同
git init -bare test.git
# 设定文件所属用户
sudo chown -R git:git test.git

6、远程访问Git 版本库

6.1 将远程仓库克隆到本地

# 将远程仓库克隆到本地,形成本地仓库
# 克隆远程仓库 => 用户@主机名:仓库地址
git clone git@linux1:/home/git/git-rep/test.git

6.2 提交文件到本地仓库

# 增加文件
git add client.txt
# 提交文件
git commit -m 'client'
iLZ513.png

6.3 将本地仓库同步到远程仓库

# 同步远程仓库
# 远程仓库默认有个别名叫origin,将本地仓库的文件推送(push)到远程仓库
# git push 远程仓库别名 分支名称
git push origin master
iLZoCy.png

6.4 查看远程仓库

# 服务器端切换用户
su git
# 进入仓库
cd /home/git/git-rep/test.git
# 切换到主干分支
git checkout master
# 查看git日志
git log 
iLZsX5.png

最后

对各位小伙伴有帮助的话,希望可以点赞❤️+收藏⭐,谢谢各位大佬~~🙌🙌🙌

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Selenium控制Chrome浏览器 --工作自动化

使用Selenium控制Chrome浏览器 --工作自动化 背景: 最近朋友在用秒账做帐时,由于销售单量很大,重复录入工作一天一录就近五个小时,寻求帮助,问能不能把这重复劳动减少些,看后分析,使用web自动…

为网站的中文和英文使用不同的字体

CSS为网站的中文和英文使用不同的字体 前言 最近我在搭建个人网站,在这个过程中遇到很多的问题,不过chatGPT3.5帮助了很多,这是我使用的咒语: 我正在搭建一个个人网站,使用python Flask框架,CSS采用Boots…

linux网络设置与维护命令

文章目录 一、linux网络设置与维护命令总结 一、linux网络设置与维护命令 Linux ifconfig命令:配置或显示网络接口信息 Linux netstat命令:显示网络状态 Linux ip命令:执行网络管理任务 Linux ping命令:测试主机间网络连通性 Linux wall命令:发送广播 Linux finger命令:查找并…

ShardingJDBC的实核心流程和商户商家订单的分片实现

一、ShardingJDBC的核心流程 ShardingJDBC的核心流程主要分成六个步骤,分别是:SQL解析->SQL优化->SQL路由->SQL改写->SQL执行->结果归并,流程图如下: 4.1、SQL解析 分为词法解析和语法解析。 先通过词法解析器将SQL拆分为一…

基于ESP32 蓝牙游戏手柄设计

使用 ESP32 并通过 BLE 通信的 DIY 手持游戏手柄 这个项目中使用的东西 硬件组件 esp32 1 ws2812b 6 操纵杆 2 角度按钮 2 按钮 8 18560电池和电池座 2 3路拨动开关 1 TP4056带保…

【从0到1了解Libarchive】带你了解Libarchive Libarchive的用途意义以及成功入门Libarchive

目录 0 如果你还不知道Libarchive是什么请一定要先看一下 1 简介 1.1 为什么实现Libarchive 1.2 到底都有谁在用呢? 1.3 Libarchive都有哪些功能 1.4 我们可以通过这些获取更多信息 1.5 如何贡献 2 Libarchive归档与压缩 3 Libarchive编译 4 Libarchive简…

ApplicationContext 和 BeanFactory 的区别

✏️作者:银河罐头 📋系列专栏:JavaEE 🌲“种一棵树最好的时间是十年前,其次是现在” 目录 ApplicationContext 和 BeanFactory 的区别 ApplicationContext 和 BeanFactory 的区别 那么这 2 种获取 Spring 上下文对象…

搭建electron-vue上

electron-vue 准备工作修改package.jsonappveyor.yml.travis.yml.gitignore.eslintrc.js.eslintignore.babelrcsrc/renderer/main.jssrc/renderer/App.vuesrc/renderer/store/index.jssrc/renderer/store/modules/Counter.jssrc/renderer/store/modules/Counter.jssrc/renderer…

渗透测试 | 目录扫描

0x00 免责声明 本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担…

BUUCTF ciscn_2019_n_8

小白垃圾做题笔记而已,不建议阅读观看。 看到保护后我………………傻眼了。这保护全看根本无从下手嘛。 看到源程序后我依然有点迷茫。 我是小白,直到看到了大佬的wp,我才有有点头绪。 这里,var[13]里的不能为0 并且里边存储的还…

Java 基础入门篇(六)——— String 类详解

文章目录 一、String 类概述二、String 创建对象的方式2.1 创建对象的两种方式2.2 面试:两种方式的区别 ★2.3 常见面试题 ★ 三、String 类常用方法3.1 字符串内容比较3.2 常用 API:遍历、截取、替换、分割 一、String 类概述 java.lang.String 类代表…

R语言 | 日期和时间的处理

目录 一、日期的设定与使用 1.1 as.Date()函数 1.2 weekdays()函数 1.3 months()函数 1.4 quarters()函数 1.5 Sys.localeconv()函数 1.6 Sys.Date()函数 1.7 再谈seq()函数 1.8 使用不同格式表示日期 二、时间的设定与使用 2.1 Sys.time()函数 2.2 as.POSIXct()函数…

ChatGPT学习企业产品、服务内容、往期方案,处理所输入的客户需求,定制化生成解决方案

该场景对应的关键词库(6个): 企业产品和服务内容、客户需求和参数、营销方案和推广策略、数据处理和模型训练、客户满意度和营销效率、往期营销方案 提问模板: 场景产品问题 模板1: 场景:某家电公司生产的…

【Redis】Redis单线程和多线程

Redis单线程 Redis为什么是单线程 Redis的版本很多,比如3.x、4.x、6.x等,版本不同,架构不同: 3.x版本,最早的版本,单线程4.x版本,严格意义上来说不是单线程,负责处理客户端请求的…

使用Vue+axios+Vuex实现登录后前端数据本地化存储实战

前言 这已经是《Vue + SpringBoot前后端分离项目实战》专栏的前端部分第8篇博客了,服务端部分由天哥(天哥主页)负责,目前专栏目录如下: Vue + SpringBoot前后端分离项目实战 - 前端部分1. 手把手带你做一套毕业设计-征程开启2. 我应该把毕业设计做到什么程度才能过关?3.…

cpp: read and write utf-8 text file using vs 2022

/*****************************************************************//*** \file geovindu.h* \brief 业务操作方法** \author geovindu,Geovin Du* \date 2023-04-22 ***********************************************************************/ /*** https://learn.mi…

【Linux】如何创建进程?

🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️林 子       🛰️博客专栏:✈️ 小林的Linux之路       🛰️社区 :✈️ 进步学堂       &a…

【技术】《Netty》从零开始学netty源码(四十八)之缓存池ObjectPool

目录 ObjectPool创建对象池获取对象get()从本地池中获取对象claim()回收对象 ObjectPool 在分析PooledByteBuf的时候我们遇到了recycleHandler类,该类用于回收已经使用完毕的缓存对象并将其放回池中供下次循环利用,Netty的对象池工作过程大体如下&#…

数字图像处理简答题

目录 1.人类视觉对颜色的主观感觉包括哪三类? 2. 图像成像的过程包括哪三步? 3.图像的采样和量化分别指什么? 4、取k8时,将下图用相应矩阵表示 5、简述当限定了数字图像的数据量时采样和量化参数的选择遵循哪两条原则&#x…

荔枝派Zero(全志V3S)制作 IMG 镜像文件

文章目录 前言一、安装工具二、生成新的 img 文件三、分割虚拟磁盘四、挂载虚拟磁盘并格式化1、首先建立虚拟磁盘并分区2、格式化虚拟磁盘分区 五、开始备份六、卸载虚拟磁盘七、dd 烧录系统八、运行测试 前言 之前在玩板子时每次烧录镜像都是先烧录 uboot 到 SD 卡 8k 偏移处…