大家好我是陈师傅(扶了扶并不存在的眼镜),今天要带各位体验一场"代码的奇幻漂流"。前两天隔壁工位老王神秘兮兮地说:"我有个价值十个亿的项目..."(停顿)"...的源码需要找个安全的地方存着",我反手就给他演示了如何用CentOS搭个私人Git服务器。现在就把这个能让你在妹子面前装...啊不是...提升技术实力的技能传授给大家!
---
想象你要盖个代码别墅(服务器),首先得准备:
1. 一台至少1核2G的CentOS 7+服务器(云主机或旧电脑都行)
2. 能流畅打出sudo的双手(建议先洗手避免键盘卡键)
3. 一颗遇到报错不摔键盘的强大心脏
专业提示:建议关闭SELinux以免后续出现灵异事件:
```bash
sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
```
就像开锁需要钥匙一样:
sudo yum install -y git
安装完成后记得给老王看看版本号装个X:
git --version
总不能让你家猫都能push代码吧?我们来新建git专用账户:
sudo adduser git
sudo passwd git
这时候老王突然举手:"为什么要单独建用户?"问得好!这就好比不能把保险柜钥匙插门上——专用账户既能隔离权限又能方便管理。不信你看/etc/passwd文件里新出现的这个git用户信息。
让我们给老王的十个亿项目建个豪华单间:
sudo mkdir -p /home/git/repositories/10billion-project.git
cd /home/git/repositories/10billion-project.git
sudo git init --bare
这时候老王又双叒叕提问:"这裸仓库和我本地仓库有啥区别?"(敲黑板)裸仓库就像银行金库只存金条不装修——没有工作区文件更适合做中央仓库。
1. 本地生成钥匙(以Windows为例):
在Git Bash执行:
```bash
ssh-keygen -t rsa -C "laowang@10billion.com"
```
生成的id_rsa.pub就是你的"电子指纹"
2. 在服务器创建授权文件:
sudo mkdir /home/git/.ssh
sudo touch /home/git/.ssh/authorized_keys
sudo chmod 700 /home/git/.ssh
sudo chmod 600 /home/git/.ssh/authorized_keys
3. 把公钥复制到服务器:
使用sz/rz命令或者复制粘贴大法把id_rsa.pub内容追加到authorized_keys里
这时候可以测试下你的数字钥匙是否匹配成功:
ssh git@你的服务器IP地址
如果看到欢迎信息而不是拒绝提示...恭喜你获得数字世界入场券!
老王颤抖着手在本地执行:
git remote add origin git@服务器IP:/home/git/repositories/10billion-project.git
git push -u origin master
当看到类似这样的输出时:
Counting objects: 100% (100/100), done.
Writing objects: 100% (100/100), 1.01 MiB | 1.12 MiB/s, done.
Total 100 (delta 20), reused 0 (delta 0)
To xxx.xxx.xxx.xxx:/home/git/repositories/10billion-project.git
* [new branch] master -> master
请准备好接受老王崇拜的目光吧!
假设我们要在每次push时自动发邮件给老王(防止他忘记自己改过啥):
1. 进入hooks目录:
```bash
cd /home/git/repositories/10billion-project.git/hooks
2. 创建post-receive脚本:
sudo vim post-receive
内容参考:
echo "王总!您的十个亿项目有更新啦!快去查看!" | mail -s "代码变更提醒" laowang@10billion.com
3. 赋予执行权限:
sudo chmod +x post-receive
下次push时就会触发这个邮件提醒——虽然可能被老王吐槽像催命符...
1. 禁用shell登录(让git用户只能传代码不能瞎操作):
修改/etc/passwd文件中的git用户行尾为:
git:x:1001:1001::/home/git:/usr/bin/git-shell
2. 定期备份大法好:
使用crontab设置定时任务同步到其他存储:
0 */6 * * * rsync -avz /home/git/repositories backup-server:/path/to/backup
3. 权限隔离策略:
不同项目组使用不同的公钥认证组进行隔离管理
Q:为啥不用Gitea/GitLab这些现成方案?
A:就像泡面和大餐的区别——简单需求自己搭更轻量;复杂需求还是上完整方案吧!
Q:如何支持HTTP协议访问?
A:可以配置nginx反向代理+git-http-backend实现
Q:客户端总是提示Permission denied怎么办?
A:请依次检查→公钥是否上传→文件权限是否正确→SELinux状态→防火墙端口是否开放
现在你已经掌握了打造私人代码金库的核心科技!最后友情提示:千万别真把十个亿的项目放进去测试啊!(除非你愿意分我一半)如果遇到问题欢迎评论区交流——当然如果问题太难的话...我可能会假装没看见~
TAG:centos搭建git服务器,centos部署git,搭建git服务器(在windows server),centos git
随着互联网的普及和信息技术的飞速发展台湾vps云服务器邮件,电子邮件已经成为企业和个人日常沟通的重要工具。然而,传统的邮件服务在安全性、稳定性和可扩展性方面存在一定的局限性。为台湾vps云服务器邮件了满足用户对高效、安全、稳定的邮件服务的需求,台湾VPS云服务器邮件服务应运而生。本文将对台湾VPS云服务器邮件服务进行详细介绍,分析其优势和应用案例,并为用户提供如何选择合适的台湾VPS云服务器邮件服务的参考建议。
工作时间:8:00-18:00
电子邮件
1968656499@qq.com
扫码二维码
获取最新动态