一、主机规划
主机名 | ip |
server | 192.168.241.129 |
client | 192.168.241.128 |
二、安装Git
server和client都需要安装
注意:Git没有真正的client,这里的client指的是开发端。
#更改yum源
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all
sudo yum makecache
#安装git
yum install git git-core gitweb -y
三、创建git用户(server服务器)
useradd git
passwd git
四、创建和初始化仓库(server服务器)
mkdir /git-root
cd /git-root
git init --bare shell.git
注意:
git init 和git init --bare的区别:
使用--bare选项时,不再生成.git目录,而是只生成.git目录下的版本历史记录文件,这些版本历史历史记录文件也不再存放.git目录下面,而是直接存放在本本库的根目录下面。
用git init初始化的版本库该用户也可以在该目录下执行所有git操作,但是别的用户将更新的项目push到仓库时会出现冲突。
使用git init --bare创建一个所谓的裸库,不允许任何所有用户执行所有的git操作,只保存历史提交的版本信息,如果要是硬操作的话,只会得到报错信息。所以这就是为什么最好用git init --bare初始化git仓库
五、授权和免密(server服务器)
chown -R git:git shell.git
su - git
ssh-keygen -t rsa
cd .ssh/
cp id_rsa.pub authorized_keys
六、client和server做免密(client服务器)
ssh-keygen -t rsa
ssh-copy-id 192.168.241.129
七、做一个推送测试(client服务器)
git config --global user.email "you@example.com"
注意:
这里是默认配置,这个信息保存了当前用户下的.git/config文件里,如果特定项目需要特定的名字,只需要将--global去掉即可
#克隆测试
git clone git@192.168.241.129:/git-root/shell.git
#测试推送
cd shell
vim 1.sh (编辑个文本)
git add 1.sh (保存到暂存区)
git commit -m "first"
git push origin master