github毕竟是公开的,而私有仓库又得花钱买。所以我们可以想办法搭建一个私有的,只自己公司使用的。Gitlab是个不错的选择。在介绍它之前,先讲述一下命令行的git服务器
另找一台服务器,首先要安装git,yum install git
添加git用户,并且设置shell为/usr/bin/git-shell,目的是为了不让git用户远程登陆
useradd -s /usr/bin/git-shell git
cd /home/git
创建authorized_keys文件,并更改属主、属组和权限,用来存客户端机器上的公钥
mkdir .ssh
touch .ssh/authorized_keys
chown -R git:git .ssh
chmod 600 .ssh/authorized_keys
把登录机的公钥复制到服务器的.ssh/authorized_keys文件中
cat .ssh/id_rsa.pub //查看登录机上的ssh
vi .ssh/authorized_keys //复制公钥
ssh git@192.168.179.129 //在登录机上尝试连接服务器
在服务器上设置好存储git仓库的目录,比如 /data/gitroot
mkdir /data/gitroot
cd /data/gitroot
git init --bare sample.git // 会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾
chown -R git.git sample.git
以上操作是在git服务器上做的,平时git服务器是不需要开发人员登录修改代码的,它仅仅是充当着一个服务器的角色,就像github一样,平时操作都是在我们自己的pc上做的
首先要把客户端上的公钥放到git服务器上/home/git/.ssh/authorized_keys文件里
在客户端上(自己pc)克隆远程仓库
git clone git@192.168.179.129:/data/gitroot/sample.git
此时就可以在当前目录下生成一个sample的目录,这个就是我们克隆的远程仓库了。进入到这里面,可以开发一些代码,然后push到远程
cp /etc/init.d/mysqld .
git add .
git commit -m "add file"
git push origin master //由于是空仓库,推送的时候需要指定仓库位置
添加文件到服务器
echo "112233" > 222.txt
git add 222.txt
git commit -m "add 222.txt"
git push
将仓库克隆到本地
cd /tmp/
git clone git@192.168.179.129:/data/gitroot/sample.git
如果仓库数据有变更,可在克隆目录下使用git pull更新