如何搭建你自己的 Git 服务器呢?

简介: 假如您既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。

一、申请一个免费云服务器,本文以此服务器为例,创建用户Git,用来管理运行Git服务
$useradd git

二、配置无密码SSH登陆
用命令:ssh-keygen -t rsa -b 4096 -C “comment to identify the key” 生成密钥

完成之后,在.ssh目录下,我们可以看到id_rsa和id_rsa.pub文件,id_rsa.pub为公钥,我们通过命令scp将id_rsa.pub拷贝到Git服务器上。

在Git服务器上我们首先查看/home/git/.ssh目录下是否存在authorized_keys文件,如果没有,可以通过touch authorized_keys创建此文件。

authorized_keys创建完成后,将拷贝过来的公钥id_rsa.pub的内容追加到authorized_keys中,注意是追加到此文件中,可以使用命令

$cat id_rsa.pub >> /home/git/.ssh/authorized_keys

完成后,我们就可以使用命令ssh Git服务器即可完成无密码登陆。

三、安装Git
1、通过命令yum install git,安装Git
屏幕截图 2023-10-14 000829.png

四、建立Git仓库的存储目录

  1. mkdir -p /git/gramess.git
    image.png

  2. chown -R git:git /git
    屏幕截图 2023-10-14 001039.png

五、添加Git提交用户

git config --global user.name "ming"
git config --global user.email "ming@ming.com"

六、初始化服务器端仓库

初始化Git仓库

cd /git/gramess.git
git init

添加新文件

echo readme > README

将所有新增文件加入到

git add -A

提交所有文件

git commit -m "init"

添加远程服务器地址

git remote add origin ssh://git@192.168.10.8/git/ming.git

将本地git代码同步到服务器master分支中

git push origin master
chown -R git:git /git

通过以上的步骤我们就完成了git服务器的搭建,完成搭建后,我们需要了解一下与git服务器交互过程中所用到命令

主要命令有git clone、git remote、git fetch、git pull、git push等
如遇到不能推送到远端请在远端git仓库的 .git/config 文件末尾添加

[receive]
denyCurrentBranch = ignore

附:
1、将本地git代码同步到服务器master分支中
git push origin master

如果当前分支与远程分支之间存在追踪关系,则本地分支和远程分支都可以省略(将当前分支推送到origin主机的对应分支)
git push origin

还有一种情况,就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要使用–all选项(将所有本地分支都推送到origin主机)
git push --all origin

2、从服务器上克隆一份完整、最新的源代码
git clone ssh://git@192.168.10.8/git/ming.git ming.me

执行该命令可将服务器端的代码同步到本地。

当其他同时上传代码到服务器后,我们必须使用git pull命令将服务器上的代码同步到本地。

当我们准备提交代码时,必须先执行git pull命令
git pull # 服务器端的代码同步到本地

其他命令

切换到某个分支

git checkout develop

创建新分支并切换到該分支

git checkout -b develop

将本地develop分支推送到远端

git push --set-upstream origin develop

或者使用

git push origin develop

查看当前所在的分支

git branch

查看当前所在的分支包括远程分支

git branch -a

查看远程分支

git branch -r

删除某个远程分支

git push origin --delete [branch_name]

检出远程分支

git checkout orgin/[branch_name]

撤回 commit 或者回滚到某个版本

git commit --soft HEAD #撤销提交 撤销提交后代码会回到 git add 状态
git commit --hard HEAD #代码回滚
————————————————

相关文章
|
28天前
|
存储 开发工具 git
[Git] 深入理解 Git 的客户端与服务器角色
Git 的核心设计理念是分布式,每个仓库既可以是客户端也可以是服务器。通过 GitHub 远程仓库和本地仓库的协作,Git 实现了高效的版本管理和代码协作。GitHub 作为远程裸仓库,存储项目的完整版本历史并支持多客户端协作;本地仓库则通过 `.git` 文件夹独立管理版本历史,可在离线状态下进行提交、回滚等操作,并通过 `git pull` 和 `git push` 与远程仓库同步。这种分布式特性使得 Git 在代码协作中具备强大的灵活性和可靠性。
53 18
[Git] 深入理解 Git 的客户端与服务器角色
|
29天前
|
网络安全 Apache 开发工具
图解Git——服务器上的Git《Pro Git》
Git 远程仓库及通信协议简介:远程仓库为团队协作提供平台,支持共享代码。常见形式为裸仓库,仅保存 Git 元数据。Git 支持多种协议,包括本地协议(适合局域网)、HTTP/HTTPS(推荐智能 HTTP,安全易用)、SSH(企业内部协作首选)和 Git 协议(高效只读访问)。选择协议需根据协作需求、安全性和配置难度权衡。此外,搭建 Git 服务器涉及创建裸仓库、上传至服务器、初始化共享仓库等步骤。生成 SSH 公钥、配置服务器及使用 GitWeb 或 GitLab 等工具可进一步增强功能。第三方托管服务如 GitHub 提供便捷的托管选项,适合快速启动和开源项目。总结而言,自行运行服务器提
40 11
|
4月前
|
前端开发 开发工具 git
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
61 5
|
5月前
|
Linux 开发工具 数据安全/隐私保护
搭建 Git 私人服务器完整指南
本文详细介绍了如何从零开始搭建一个私人的 `Git` 服务器。首先,文章解释了 `Git` 的概念及其优势,并阐述了搭建私人 `Git` 服务器的重要性,包括数据隐私、定制化需求及成本效益。接着,文章分步骤指导读者完成服务器的准备工作,包括操作系统、硬件和网络要求。随后,详细介绍了在不同操作系统上安装 `Git` 的方法,并演示了如何创建 `git` 用户、部署仓库以及设置免密登录。此外,还提供了客户端连接远程仓库的具体步骤,包括 Linux 和 Windows 的操作方式。最后,文章探讨了迁移仓库的方法以及搭建 `Git` 服务器的一些进阶选项。
1062 0
搭建 Git 私人服务器完整指南
|
6月前
|
开发工具 git iOS开发
服务器配置Huggingface并git clone模型和文件
该博客提供了在服务器上配置Huggingface、安装必要的工具(如git-lfs和huggingface_hub库)、登录Huggingface以及使用git clone命令克隆模型和文件的详细步骤。
585 1
|
8月前
|
Shell 网络安全 开发工具
git实现服务器自动push拉取代码--webhooks
git实现服务器自动push拉取代码--webhooks
649 1
|
9月前
|
JavaScript 持续交付 Go
如何实现Git Push之后自动部署到服务器?
如何实现Git Push之后自动部署到服务器?
271 0
|
5天前
|
存储 机器学习/深度学习 人工智能
2025年阿里云GPU服务器租用价格、选型策略与应用场景详解
随着AI与高性能计算需求的增长,阿里云提供了多种GPU实例,如NVIDIA V100、A10、T4等,适配不同场景。2025年重点实例中,V100实例GN6v单月3830元起,适合大规模训练;A10实例GN7i单月3213.99元起,适用于混合负载。计费模式有按量付费和包年包月,后者成本更低。针对AI训练、图形渲染及轻量级推理等场景,推荐不同配置以优化成本和性能。阿里云还提供抢占式实例、ESSD云盘等资源优化策略,支持eRDMA网络加速和倚天ARM架构,助力企业在2025年实现智能计算的效率与成本最优平衡。 (该简介为原文内容的高度概括,符合要求的字符限制。)
|
7天前
|
存储 弹性计算 人工智能
2025年阿里云企业云服务器ECS选购与配置全攻略
本文介绍了阿里云服务器的核心配置选择方法论,涵盖算力需求分析、网络与存储设计、地域部署策略三大维度。针对不同业务场景,如初创企业官网和AI模型训练平台,提供了具体配置方案。同时,详细讲解了购买操作指南及长期运维优化建议,帮助用户快速实现业务上云并确保高效运行。访问阿里云官方资源聚合平台可获取更多最新产品动态和技术支持。
|
9天前
|
弹性计算 JavaScript 前端开发
一键安装!阿里云新功能部署Nodejs环境到ECS竟然如此简单!
Node.js 是一种高效的 JavaScript 运行环境,基于 Chrome V8 引擎,支持在服务器端运行 JavaScript 代码。本文介绍如何在阿里云上一键部署 Node.js 环境,无需繁琐配置,轻松上手。前提条件包括 ECS 实例运行中且操作系统为 CentOS、Ubuntu 等。功能特点为一键安装和稳定性好,支持常用 LTS 版本。安装步骤简单:登录阿里云控制台,选择扩展程序管理页面,安装 Node.js 扩展,选择实例和版本,等待创建完成并验证安装成功。通过阿里云的公共扩展,初学者和经验丰富的开发者都能快速进入开发状态,开启高效开发之旅。