Debian部署Git私人仓库
标签搜索
侧边栏壁纸
  • 累计撰写 6 篇文章
  • 累计收到 0 条评论

Debian部署Git私人仓库

你的云
2026-02-18 / 0 评论 / 7 阅读 / 正在检测是否收录...

📚 目录

  • 一、创建 git 用户
  • 二、创建远程裸仓库
  • 三、设置仓库权限(关键)
  • 四、本地项目初始化
  • 五、添加远程仓库
  • 六、提交并推送代码
  • 七、强制覆盖远程仓库
  • 八、HTTP 方式访问(Dumb HTTP)
  • 九、推荐使用 SSH Key 登录
  • 十、最佳实践总结

一、创建 git 用户

为了安全性,不建议直接使用 root 运行 Git 仓库。

创建专用用户:

adduser git

设置密码:

passwd git

二、创建远程裸仓库

远程仓库 必须使用 --bare 模式

登入到你的Debian服务器

使用Git用户登入到服务器

在 /home/git/ 目录下创建文件夹如 mydebug

创建仓库存放目录:

mkdir -p /home/git/mydebug
cd /home/git/mydebug

初始化裸仓库:

git init --bare xxx.git
# xxx 是的你的仓库名字,后缀.git

📌 说明:

  • --bare 是远程仓库必须使用的模式
  • 裸仓库没有工作区
  • 不能直接修改文件

目录结构示例:

/home/git/
└── mydebug/
    └── xxx.git/

三、设置仓库权限(关键)

如果权限不对,push 会失败。

在使用root用户登入到Dbian服务器

1️⃣ 设置归属用户

chown -R git:git /home/git/mydebug/

2️⃣ 设置目录权限

普通使用:

chmod -R 755 /home/git/mydebug/

多人协作:

chmod -R 775 /home/git/mydebug/

四、本地项目初始化

进入本地项目目录,执行下列命令进行初始化:

git init

五、添加远程仓库

添加远程仓库:

git remote add origin git@xxx.xxx:/home/git/mydebug/xxx.git
#xxx.xxx 指你的域名

如果需要修改远程地址:

git remote set-url origin git@git@xxx.xxx:/home/git/mydebug/xxx.git

查看远程仓库:

git remote -v

六、提交并推送代码

git add .
git commit -m "Initial commit"
git push -u origin master

首次推送成功后,以后只需要:

git push

七、强制覆盖远程仓库

⚠️ 慎用,会覆盖远程历史记录。

git push -u origin master --force

建议只在以下情况使用:

  • 远程仓库刚创建
  • 本地历史需要完全替换远程

八、HTTP 方式访问(Dumb HTTP)

如果你想用 HTTP 克隆仓库:

进入仓库目录:

cd /home/git/mydebug/xxx.git

执行:

git update-server-info

📌 说明:

  • 这是 Dumb HTTP 模式必须执行的命令
  • 每次更新后都建议执行一次

Nginx 示例配置

如果使用 Nginx:

# HTTP 强制跳转 HTTPS
server {
    listen 80;
    server_name 你的域名;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name 你的域名;

    # SSL 证书
    ssl_certificate     /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers off;

    root /git;
    autoindex on;

    location / {
        try_files $uri $uri/ =404;
    }

    # Git Dumb HTTP 静态支持
    location ~ ^/.+\.git/ {
        default_type application/octet-stream;
    }
}

访问方式:

http://你的服务器/git/xxx.git

克隆方式:

git clone http://你的服务器/git/xxx.git

九、推荐使用 SSH Key 登录

SSH 比 HTTP 更安全。

1️⃣ 生成密钥(本地)

ssh-keygen -t ed25519

2️⃣ 将公钥写入服务器

编辑:

/home/git/.ssh/authorized_keys

设置权限:

chmod 700 /home/git/.ssh
chmod 600 /home/git/.ssh/authorized_keys
chown -R git:git /home/git/.ssh

之后即可免密码 push。


📌 结语

通过以上步骤,你已经成功在 Debian 服务器上搭建了一个完整的私有 Git 仓库系统。

⚠️ 免责声明

本文仅用于技术学习与交流,作者不对因使用本文内容所造成的任何直接或间接损失承担责任。

一、风险说明

本文涉及:

  • 服务器用户管理
  • 文件权限修改(chown / chmod
  • SSH 远程登录配置
  • Git 私有仓库部署
  • Web 服务配置(如 Nginx)

以上操作均可能影响服务器安全性与系统稳定性。

如配置错误,可能导致:

  • 权限异常
  • 服务无法访问
  • 数据丢失
  • 安全风险

请务必在理解命令含义后再执行。


二、安全声明

本文示例基于:

  • Debian

不同系统版本或发行版可能存在差异,请根据自身环境调整配置。

建议:

  • 在测试环境中验证
  • 做好数据备份
  • 不要直接在生产环境盲目操作

三、责任限制

  • 本文不构成任何形式的运维保证或安全承诺
  • 不对因误操作导致的损失负责
  • 不保证所有命令在所有环境下均完全适用

四、合法合规使用

本文内容仅用于:

  • 合法服务器运维
  • 个人学习与研究
  • 合规的代码托管用途

严禁用于:

  • 非法入侵
  • 未授权访问
  • 任何违反当地法律法规的行为

使用者应自行承担法律责任。


五、版权说明

本文为原创技术内容,转载请注明出处。
部分技术概念属于开源社区通用知识。

0

评论

博主关闭了所有页面的评论