阿里云带余额账号 在服务器上搭建Git私有仓库
为什么要自己搭私有仓库?
说真的,把核心代码放GitHub或者GitLab上,总有点"裸奔"的感觉。万一哪天被竞争对手挖墙脚,或者平台突然宕机,那真是欲哭无泪。自己搭个私有仓库,代码只在自己局域网里跑,安全又放心。而且,公司内部项目不想公开,私有仓库就是最好的选择。再说了,用免费平台可能遇到各种限制,比如私有仓库收费,或者上传大文件被限制。自己搭的话,想存多大都行,只要服务器硬盘够大,这就是掌控感啊!
准备工作:服务器和基础设置
检查服务器环境
首先,确认你的服务器是不是已经安装了Git。打开终端,敲个命令:
git --version
如果显示版本号,恭喜你,省了一步;要是提示command not found,那就得赶紧安装。Ubuntu系统用apt-get install git,CentOS用yum install git,简单得像点外卖。不过要注意,有些服务器可能默认没装,就像新买的手机没预装微信,得自己安装。
安装完后,再检查一下版本。如果显示像git version 2.30.2,说明没问题。这时候可以松口气,第一步算是搞定了。
创建专用用户
接下来,得给服务器安排一个"管家",专门管理代码。创建git用户:
sudo adduser git
设置密码时,别用123456,否则黑客分分钟黑进来。密码复杂点,比如"Git@2024!",虽然记不住,但安全。创建完用户后,切换到git用户:
su - git
这一步很重要,因为后续操作都要用这个用户,避免权限混乱。就像开公司得有个专门的会计,不能让所有人随便管钱。
创建裸仓库
初始化仓库
现在,轮到创建我们的核心仓库了。切换到git用户的家目录:
cd /home/git
阿里云带余额账号 创建一个新目录,比如myproject.git,然后进入:
mkdir myproject.git
cd myproject.git
接着,执行初始化命令:
git init --bare
这里要注意,仓库名必须以.git结尾,这是Git的规矩。裸仓库(bare repository)和普通仓库不同,它不包含工作目录,专门用来接收推送,就像一个纯仓库的"中转站"。你不能直接在裸仓库里修改文件,只能通过push和pull来操作,这样保证了数据的安全性和一致性。
创建完后,检查一下目录结构,你会发现里面有一堆Git系统文件,比如config、hooks、objects等。这就是裸仓库的"内脏",看起来有点复杂,但别担心,Git会帮你处理好一切。
有些人可能会问,为啥不能直接用普通仓库?因为普通仓库有工作目录,如果多人同时push,可能会冲突。裸仓库专门用于共享,避免这种问题,就像快递中转站只负责收发,不处理包裹细节。
配置SSH密钥,让客户端安全连接
生成密钥对
在本地电脑上,用ssh-keygen生成密钥,一路回车就行。然后把公钥(id_rsa.pub)内容复制到服务器的git用户~/.ssh/authorized_keys文件里。
这一步很关键,相当于给仓库装了把锁,只有带正确钥匙的人才能打开。记住,私钥绝对不能泄露,否则就像把家门钥匙随便送人。
具体操作:在本地终端输入:
ssh-keygen -t rsa -b 4096
按提示操作,生成后,用cat ~/.ssh/id_rsa.pub查看公钥内容,复制下来。然后登录服务器,用vi或nano编辑~/.ssh/authorized_keys文件,把公钥粘贴进去。如果.ssh目录不存在,先创建:
mkdir ~/.ssh
chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
权限设置很重要,SSH对权限很敏感,错了就不让登录。就像保险柜的密码锁,如果设置错了,门就打不开了。
设置权限
服务器上,检查~/.ssh目录权限是700,authorized_keys是600。否则SSH会拒绝连接。毕竟安全无小事,权限设置错一点,全盘皆输。
客户端连接测试
在本地电脑,用git clone git@服务器IP:myproject.git试试。如果成功,说明一切OK。这时候可以push代码上去,看看是否顺畅。
比如,先克隆:
git clone [email protected]:myproject.git
如果提示"Cloning into 'myproject'...",说明连接成功。然后进去创建个文件,提交并push:
cd myproject
echo "Hello World" > test.txt
git add test.txt
git commit -m "Initial commit"
git push origin master
如果顺利推送,恭喜你,私有仓库搭建成功!
常见问题和解决方案
权限错误怎么办?
如果出现"Permission denied (publickey)",先检查本地密钥是否放对了位置,服务器authorized_keys有没有正确导入。另外,服务器上git用户的家目录权限是否正确。比如,家目录权限应该是755,.ssh目录700,authorized_keys 600。可以用ls -la检查权限,错了就用chmod改。
克隆速度慢?
阿里云带余额账号 可能网络问题,或者SSH配置问题。试试用HTTPS方式,或者检查服务器带宽。不过私有仓库通常内网使用,速度一般不是问题。如果外网访问,建议用SSH加密,避免HTTP明文传输不安全。
多人协作怎么管理?
可以给每个开发者分配独立的公钥,添加到authorized_keys。或者用更高级的工具如Gitea,但本教程只讲基础,够用就行。记住,每个开发者都有自己的密钥,这样权限管理更清晰,出了问题也容易追踪。
还有一个小技巧:如果想让多个用户共享一个仓库,可以给每个用户分配不同的公钥。比如,管理员A的公钥和开发B的公钥都放在authorized_keys里,这样他们都能访问。但要注意,如果某个员工离职,记得及时删掉他的公钥,别让前员工还能访问公司代码。
备份很重要
私有仓库虽然安全,但也不能掉以轻心。定期备份仓库目录,比如用tar压缩,存到异地服务器或者云存储。毕竟硬盘可能坏,服务器可能故障,备份是最后的防线。我之前见过一个团队,硬盘坏了没备份,所有代码全没了,哭都哭不出来。所以,别偷懒,定期备份!
最后,搭完私有仓库后,记得给团队成员做个简单培训。比如怎么克隆、提交、拉取,别让他们连git pull都搞不懂。毕竟技术再牛,用的人不会也是白搭。现在你可以自豪地说:"公司代码的安全,掌握在我手里!"


