目录
准备两台机器。
安装
两台都要安装
yum install git git-core gitweb -y
基础配置
以下操作在第一台机器上执行:
useradd git
然后给他一个密码:
passwd git
创建目录:
mkdir /git-root/
cd进去然后进行初始化:
git init --bare shell.git
注意:git init 和 git init --bare 的区别:
使用 --bare 选项时,不再生成.git目录,而是只生成.git目录下面的版本历史记录文件,这些版本历史记录文件也不再存放在.git目录下面,而是直接存放在版本库的根目录下面用 git init 初始化的版本库用户也可以在该目录下执行所有git方面的操作。但别的用户在将更新push上来的时候容易出现冲突。
使用 git init --bare 方法创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到下面的错误(”This operation must be run in a work tree”)这个就是最好把远端仓库初始化成bare仓库的原因
然后对其的属主属组进行修改:
chown -R git:git shell.git
然后需要切换到git用户的目录下,生成ssh密钥:
su - git
ssh-keygen -t rsa
cd进入.ssh/目录:
cd .ssh/
cp id_rsa.pub authorized_keys
Git仓库测试
以下操作在第二台机器上执行:
ssh-keygen
这里输入自己第一台设备的ip:
ssh-copy-id git@192.168.150.50
开始克隆(当然这里是空的):
git clone git@192.168.150.50:/git-root/shell.git
先cd进去,然后这里随便创建点东西,然后添加进去:
git add [文件名]
输入你邮箱:
git config --global user.email "123@qq.com"
git config --global user.name "van"
之后开始提交:
git commit -m 'first commit'
然后push上去:
git push origin master
到这里push也就成功了,这时候可以换个目录重新克隆一下,也就相当于是再另一台机器上进行克隆操作:
cd /opt
git clone git@192.168.150.50:/git-root/shell.git
测试成功!