Git代码管理服务器配置使用:零基础搭建Git代码管理服务器

为什么你需要自己的Git代码管理服务器

很多新手在团队协作时习惯用Github或Gitee,但有些项目涉及敏感数据或内网开发,自建Git代码管理服务器就成了刚需。
自己搭一台,不受第三方平台限制,管理权限也更灵活。
而且流程并不复杂——只要有一台Linux服务器,跟着下面的步骤就能跑通。

服务器端准备:安装Git与创建专用用户

进入你的服务器(推荐Ubuntu 20.04+或CentOS 7+),先更新包管理器并安装Git。

# Ubuntu / Debian
sudo apt update && sudo apt install git -y

# CentOS / RHEL
sudo yum install git -y

安装完成后验证版本:git --version,出现类似 git version 2.25.1 即可。

为了安全,专门创建一个名为 git 的系统用户,用它来管理仓库。

sudo useradd -m -s /bin/bash git
sudo passwd git

创建后,后续所有仓库都放在 /home/git/repos/ 下。

初始化你的第一个裸仓库

裸仓库(bare repository)只存储版本历史,不含工作目录,专用于远程推送。
切换到git用户并创建仓库文件夹。

sudo -i -u git
mkdir -p ~/repos && cd ~/repos
git init --bare my-project.git

执行后 my-project.git 文件夹就出现了,里面是Git内部数据。
注意仓库名通常以 .git 结尾,这是约定俗成的。

配置SSH密钥实现免密访问

现在仓库已经就绪,但还需要让团队成员能通过SSH连接。
先在本机(客户端)生成密钥对(如果还没有)。

ssh-keygen -t rsa -b 4096 -C "you@example.com"
# 一路回车即可,密码可留空

然后将公钥 ~/.ssh/id_rsa.pub 的内容添加到服务器的 /home/git/.ssh/authorized_keys 文件里。
回到服务器操作:

sudo -i -u git
mkdir -p ~/.ssh && chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
# 编辑 authorized_keys,粘贴客户端的公钥内容
vim ~/.ssh/authorized_keys

重点: 务必检查目录和文件权限,否则SSH会拒绝连接。~/.ssh 必须是700, authorized_keys 必须是600。

现在在客户端测试连接:

ssh -T git@你的服务器IP

如果出现 Welcome to Git, the user git! 之类的欢迎信息(实际可能只提示连接成功),说明SSH配置正确。

常见踩坑点与解决方案

  • Permission denied (publickey):检查 authorized_keys 权限是否为600,.ssh 目录是否为700,且公钥内容粘贴无误(不要有多余空格或换行)。
  • 仓库路径错误:克隆时路径应该是 git@你的IP:/home/git/repos/my-project.git,注意使用绝对路径。如果提示 does not appear to be a git repository,检查目录是否存在。
  • 无法推送:确保仓库是 --bare 初始化的,非裸仓库默认拒绝接收推送。若一定要用普通仓库,需运行 git config receive.denyCurrentBranch ignore,但不推荐。
  • 防火墙或端口问题:SSH默认端口22,确保服务器防火墙放行。可用 sudo ufw allow 22(Ubuntu)或 firewall-cmd(CentOS)。

验证你的Git服务器是否正常工作

在客户端本地新建一个项目,关联远程仓库并推送。

mkdir test-project && cd test-project
git init
echo "# Hello Git Server" > README.md
git add . && git commit -m "init"
git remote add origin git@你的服务器IP:/home/git/repos/my-project.git
git push -u origin master

如果推送成功,再从另一个空目录克隆验证:

git clone git@你的服务器IP:/home/git/repos/my-project.git

看到 README.md 被下载下来,说明整套Git代码管理服务器配置使用已完美跑通。
团队其他成员只需将自己的SSH公钥加入服务器的 authorized_keys 即可协作。
遇到报错时优先回顾上面的避坑点,一般都能顺利解决。

分享到:
上一篇
零基础搭建Jenkins CI/CD持续集成部署教程
下一篇
运维批量管理工具Ansible实操
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意