📚 目录
- 一、创建 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 ed255192️⃣ 将公钥写入服务器
编辑:
/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
不同系统版本或发行版可能存在差异,请根据自身环境调整配置。
建议:
- 在测试环境中验证
- 做好数据备份
- 不要直接在生产环境盲目操作
三、责任限制
- 本文不构成任何形式的运维保证或安全承诺
- 不对因误操作导致的损失负责
- 不保证所有命令在所有环境下均完全适用
四、合法合规使用
本文内容仅用于:
- 合法服务器运维
- 个人学习与研究
- 合规的代码托管用途
严禁用于:
- 非法入侵
- 未授权访问
- 任何违反当地法律法规的行为
使用者应自行承担法律责任。
五、版权说明
本文为原创技术内容,转载请注明出处。
部分技术概念属于开源社区通用知识。
评论