怎么在自己的服务器上搭建一个git

在自己的服务器上搭建Git,本质上就是安装Git软件、创建一个裸仓库,并通过SSH协议让客户端连接,个人使用推荐“Linux服务器+Git裸仓库+SSH”方案,团队协作则推荐部署Gitea或GitLab,成本低且可控性强。

搭建前先想清楚:你的服务器适合哪种Git方案

很多朋友一上来就搜“怎么在自己的服务器上搭建一个git”,结果搜出一堆教程,有讲GitLab的,有讲Gitea的,还有直接敲git init --bare的,看完更懵了,其实选哪种方案,完全取决于你的使用场景和服务器配置。

搭建git服务器
加载中
  • 个人项目备份或小团队(5人以内)协作:直接装Git,建裸仓库,走SSH协议,这是最轻量、最省资源的方案,512MB内存的便宜云服务器就能跑得动。
  • 团队协作需要代码审查、Issue管理:部署Gitea,它是用Go写的,资源占用极小,1核1G的服务器带起来毫无压力,还自带Web界面和权限管理。
  • 中大型团队,需要CI/CD流水线深度集成:上GitLab,功能全但吃配置,官方推荐至少4核8G内存,云服务器成本会明显上去。

这里顺便回应一个高频疑问:个人服务器搭建git仓库选哪种方案更省心? 如果你不想折腾,就选Gitea;如果你想彻底弄懂Git原理,就用裸仓库方案,两者不冲突,你完全可以在裸仓库的基础上再装个Gitea做Web界面。

最硬核的裸仓库搭建(Linux + SSH)

这个方案适合有Linux基础、喜欢掌控一切的朋友,整个过程大概三步:装Git、建裸仓库、配置SSH公钥。

第一步:服务器端安装Git并创建专用用户

先登录你的服务器(以Ubuntu/Debian为例),执行:

sudo apt update
sudo apt install git -y

出于安全考虑,不建议用root账号直接跑Git操作,创建一个专用用户,比如叫git:

sudo adduser --disabled-password git

--disabled-password意思是这个用户不能通过密码登录,只能用SSH密钥,安全性更好。

第二步:初始化裸仓库

切到git用户,创建一个存放仓库的目录,然后初始化裸仓库:

sudo su - git
mkdir -p ~/repos
cd ~/repos
git init --bare my-project.git

注意,裸仓库(

怎么在自己的服务器上搭建一个git

--bare)没有工作目录,它只保存版本历史,是专门给服务器端用的,你不可能在服务器上直接看到文件内容,只能通过git clone拉下来。

第三步:配置SSH公钥登录

在你的本地电脑上生成密钥(如果还没有的话):

ssh-keygen -t ed25519 -C "your_email@example.com"

然后把公钥加到服务器的authorized_keys里:

cat ~/.ssh/id_ed25519.pub | ssh git@your_server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

最后在本地测试克隆:

git clone git@your_server_ip:repos/my-project.git

看到Cloning into 'my-project'...就说明成功了,整个git服务器搭建教程的核心就这三步,剩下的就是日常add、commit、push操作。

进阶操作:用webhook实现自动部署

很多朋友搭好Git后,下一个需求就是“我push代码后,服务器上网站怎么自动更新”,这就涉及服务器搭建git webhook实现自动部署的玩法。

原理很简单:在服务器上写一个接收HTTP请求的脚本,当Git服务器收到push事件时,通过webhook通知这个脚本,脚本再执行git pull或git checkout来更新网站文件。

大致步骤如下:

  • 在服务器上创建网站目录,并克隆一份代码过去(非裸仓库)。
  • 写一个Shell脚本,内容大致是cd /var/www/my-site && git pull origin main。
  • 用Node.js或Python写一个极简的HTTP服务,监听特定端口,收到请求后执行上面的脚本。
  • 在Gitea或GitHub仓库设置里添加webhook地址,指向你的服务器IP和端口。

这个方案比用rsync定时同步更及时,代码一推送,网站秒级更新。

偷懒但强大的Gitea部署

如果你觉得裸仓库太“原始”,不想记SSH配置,也不想用命令行管理用户权限,Gitea绝对是你想要的,业内专家指出,Gitea是目前轻量级Git服务里社区最活跃的项目之一,支持一键安装。

为什么中小团队普遍选择Gitea

Gitea的吸引力在于它把Git、用户管理、Issue、Pull Request、Wiki都打包进了一个不到100MB的二进制文件里,部署方式极其简单:

怎么在自己的服务器上搭建一个git

wget -O gitea https://dl.gitea.com/gitea/1.21.0/gitea-1.21.0-linux-amd64
chmod +x gitea
./gitea web

然后浏览器访问http://your_server_ip:3000,跟着引导填数据库(SQLite就够)、站点名称、管理员账号,搞定。

用Docker Compose部署更省心

不想手动管理二进制文件?用Docker Compose是很多人的选择,写一个docker-compose.yml:

version: "3"
services:
  gitea:
    image: gitea/gitea:latest
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
    ports:
      - "3000:3000"
      - "2222:22"

执行docker-compose up -d,Gitea就起来了,这里把服务器的22端口映射到容器的22端口,这样客户端就能直接用git@your_server_ip:owner/repo.git这种格式克隆,不需要带端口号。

新手搭建git服务器用什么系统更合适? 如果你用的是宝塔面板(BT Panel),Gitea甚至支持在面板的软件商店里直接一键部署,连Docker命令都不用敲,国内云服务器厂商的镜像市场里也常有预装Gitea的镜像,买完就能用。

权限管理与安全加固:别让服务器裸奔

很多教程搭完Git就结束了,但真实场景中,权限管理才是让你省心的关键,下面这些配置值得你花几分钟做。

用Git用户的SSH密钥限制命令

默认情况下,git用户登录服务器后是可以执行任意命令的,你可以在~/.ssh/authorized_keys前面加一段限制:

command="/usr/bin/git-shell -c "$SSH_ORIGINAL_COMMAND"",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-ed25519 AAAA...

这样用户只能执行Git相关操作,无法通过SSH登录Shell,这是Git官方推荐的做法,安全性大幅提升。

分支保护规则

如果用了Gitea或GitLab,在仓库设置里开启分支保护,禁止直接push到main或master分支,要求必须通过Pull Request合并,多人协作时,这一步能避免很多“手滑事故”。

定期备份

你的代码是无价的,服务器宕机或硬盘损坏是现实存在的风险,建议用

怎么在自己的服务器上搭建一个git

git bundle做全量备份:

git bundle create my-project.bundle --all

然后配合cron定时任务,每天凌晨把bundle文件同步到对象存储或另一台机器,行业共识认为,异地备份是数据安全的最低保障。

常见问题排查:搭好后连不上怎么办

搭建过程中,相当一部分问题出在SSH连接和权限上。

排查思路

  • Permission denied (publickey):先检查本地~/.ssh/id_ed25519.pub是否已加到服务器的authorized_keys里,再检查服务器~/.ssh目录权限是否为700,authorized_keys权限是否为600。
  • Repository not found:检查仓库路径是否写对,裸仓库的路径是相对于git用户主目录的,比如git@server:repos/my-project.git。
  • clone时卡住不动:大概率是服务器防火墙没放行22端口,或者云服务商的安全组规则没加,去云控制台检查入站规则。

连接不上的终极排查命令

ssh -v git@your_server_ip

加-v参数能看到详细的连接日志,卡在哪一步一目了然,这是所有排查手段里最直接有效的。

常见问题解答

问:个人服务器搭建git仓库和用Gitea有什么区别?

裸仓库方案只提供Git存储,没有Web界面、没有用户管理、没有Pull Request,Gitea是完整的Git服务,自带Web界面、用户系统、Issue跟踪,个人用裸仓库够用,多人协作强烈建议Gitea,能省下大量沟通成本。

问:服务器搭建git后怎么给同事开账号?

裸仓库方案下,把同事的公钥追加到服务器的~/.ssh/authorized_keys文件里即可,Gitea方案更简单,管理员在后台创建用户,然后把用户加入仓库的协作者列表就行,后者更适合频繁增减成员的情况。

问:国内云服务器搭建git仓库需要注意什么?

需要留意云服务商的安全组规则,默认情况下22端口可能未对外开放,国内服务器访问GitHub等境外服务不稳定,建议把镜像源或依赖包源换成国内源,如果团队都在国内,服务器选国内地域延迟会低很多。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/601293.html

赞 (0)
华为服务器H22H-05 怎么做raid
上一篇 2026年8月26日 15:15
服务器PE做系统光盘启动不了咋办,原因及解决方法
下一篇 2026年8月26日 15:27

相关推荐

  • 服务器2008内存占用高资源管理器查不到怎么办,如何解决内存泄漏

    面对Windows Server 2008系统内存占用率持续居高不下,而在任务管理器中却无法定位到占用进程的棘手情况,核心结论往往指向系统内核层面的隐性资源消耗,这种现象通常由非分页池内存泄漏、驱动程序错误、系统服务异常或恶意内核模块加载所致,解决此类问题的关键在于跳出任务管理器的局限,转而使用专业的系统诊断工……

    2026年4月5日
    8900
  • 5e进不去比赛服务器怎么回事,原因有哪些?

    进不去5e比赛服务器,最快的解决路径是:先排除网络链路问题,再检查客户端完整性,最后排查防火墙与服务器状态,这套顺序覆盖了绝大多数连接失败场景,不用急着卸载重装,按下面的步骤来,多数情况几分钟内就能解决,5e进不去比赛服务器是什么原因连接比赛服失败时,平台通常会弹出“连接服务器超时”“服务器无响应”或“无法连接……

    2026年9月17日
    200
  • e4a怎么接收服务器数据库

    E4A怎么接收服务器数据库?这套方案我跑了三年没出过岔子E4A接收服务器数据库数据,核心路径只有一条:通过HTTP请求访问服务器端接口,服务器脚本从数据库取出数据并返回JSON文本,E4A再解析JSON并显示到界面上,说白了,E4A本身不直连数据库,中间必须有一个“翻译官”帮你跑腿,这个翻译官就是服务器上的PH……

    2026年8月28日
    1000
  • VS2010服务器资源管理器如何应用,有哪些实用技巧?

    VS2010服务器资源管理器是连接数据库、查看表结构与调试数据的最快捷入口,打开方式为菜单栏”视图”→”服务器资源管理器”,或直接按快捷键 Ctrl+Alt+S,VS2010服务器资源管理器到底能干什么很多老开发者还在用VS2010维护遗留项目,但服务器资源管理器这个面板常常被忽略,它的定位其实很简单:不用打开……

    2026年9月23日
    200
  • 我的世界手机版如何搭建2b2t服务器,具体步骤是什么?

    在我的世界手机版搭建一个2b2t风格的服务器,核心是使用支持基岩版的服务器软件(如PocketMine-MP或Nukkit),并配置为无规则模式,同时添加必要的插件来模拟2b2t的混沌环境, 整个过程不需要复杂编程,只需一台可运行服务器的设备(手机、电脑或云服务器)和基础网络知识,下面按步骤拆解,我的世界手机版……

    2026年7月29日
    1700
  • h3c防火墙如何配置端口映射,h3c端口映射怎么设置

    在H3C防火墙中配置服务器地址端口映射,核心是通过配置NAT(网络地址转换)策略中的内部服务器映射功能,将公网IP的特定端口流量重定向到内网服务器的对应端口上,同时配合安全策略放行流量,h3c防火墙映射内网服务器到公网怎么设置:基础准备假设一个典型场景:企业内部部署了一套ERP系统,内网地址是192.168.1……

    2026年7月24日
    2400
  • 服务器改ip怎么改密码忘记了怎么办啊

    密码忘了和IP改不改没有直接关系,你的第一反应不应该是去重置IP,而是通过服务器商的控制台重置系统密码;如果改IP后登录不上,先排查新IP是否生效、安全组是否放行,再谈密码的事,很多人一遇到“服务器改ip后密码忘了”就慌,以为两边得一起解决,其实这是两件事,IP是服务器在网络上的门牌号,密码是开门的钥匙,你换门……

    程序编程 2026年8月22日
    1200
  • excel考试软件如何选择最适合自己的版本,哪个版本好?

    excel考试软件的核心价值在于通过模拟真实考试环境与智能评分系统,帮助用户快速掌握MOS认证、计算机二级等关键技能,其选择标准需紧扣考试大纲、实战题库与操作反馈三大维度,为什么excel考试软件成为考证刚需近年来,企业招聘中对Office技能,尤其是Excel高级功能的考核要求明显提升,据行业统计,超过70……

    2026年7月20日
    1400
  • 美国虚拟主机测评,实测数据与性能表现,美国虚拟主机哪家好

    综合实测数据显示,2026年主流美国虚拟主机在I/O读写速度与全球网络延迟上已实现质的飞跃,对于追求极致访问速度的外贸独立站,推荐选择配备NVMe SSD且拥有亚太直连节点的方案,性价比最高区间锁定在$3-$8/月,美国虚拟主机性能深度解析在2026年的数字化商业环境中,主机性能不再仅仅是“能用”与否的标准,而……

    2026年5月18日
    6600
  • 美国便宜VPS哪家强?ColoCrossing不限流量VPS低至$10/年

    ColoCrossing提供低至$10/年的不限流量VPS服务,其纽约机房配备1Gbps大带宽,是追求极致性价比与高网络吞吐量的用户首选方案,在服务器租赁市场日益内卷的当下,寻找一款既便宜又稳定,且不限流量的VPS产品并非易事,许多用户被低价陷阱困扰,要么遭遇带宽限制导致访问卡顿,要么面临隐藏费用,ColoCr……

    2026年6月29日
    1700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注