Git服务器的搭建与配置
远程仓库诸如GitHub之类的其实与本地搭建的Git服务器没什么太大的区别,在一些对源代码保护比较看重的公司里,一般会选择自建Git服务器作为公司内网的私有仓库使用,这里记录的是Linux下的Git服务器搭建。
Git服务器配置
第一步 安装git
CentOS执行:1
sudo yum install -y git
Ubuntu执行:1
sudo apt-get intall -y git
第二步 权限配置
1 | sudo adduser git |
通过编辑/etc/passwd文件禁用git用户使用shell:
找到1
git:x:1001:1001:,,,:/home/git:/bin/bash
修改为:1
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
之后给需要权限的用户分配一个ssh公钥,加入/home/git/.ssh/authorized_keys中。
初始化裸仓库
进入需要放置的仓库的路径(如/home/git下)执行:1
sudo git init --bare test.git
这里是在此目录下初始化一个名为test.git的仓库。(所谓裸仓库是该仓库不包含工作区,也就是说我们不能在这个目录下执行一般我们使用的命令。)参见Git 本地仓库和裸仓库 @TaoBeier
然后更改该目录的所有者与所处组为git:1
sudo chown -R git:git test.git
至此,Git服务器端已经配置完成,下面说说本地的使用:
本地使用
与GitHub等远程仓库基本一致。
项目初始化
假设Git服务器解析到git.iots.vip域名,则在项目目录下执行:1
2
3git init
git add -A *
git commit -m 'first commit'
添加远程仓库:1
git remote add origin git@git.iots.vip:/home/git/test.git
提交至远程仓库
执行1
git push -u origin master
即可提交至远程仓库。
报错提示
- 报错”unpack failed: unpack-objects abnormal exit”,这是因为远程仓库的目录权限问题,服务器端执行:
1
sudo chown -R git:git [仓库路径]
- 本地仓库git add报错”fatal: Not a git repository (or any of the parent directories): .git” 项目未初始化导致。
执行:1
git init
待补充。