搭建git服务器
cnetos7自带git,若需要其他版本可自行安装。
- 创建一个git用户组和用户,用来运行git服务
groupadd git
useradd git -g git
- 创建证书登录
收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里。如果没有该文件创建它
cd /home/git/
mkdir .ssh
chmod 755 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys
- 本地创建、上传密钥
前提,本地win已安装git,git bash后输入
ssh-keygen -t rsa
id_rsa.pub就是我们要的公钥
- rz上传密钥到/home/git
服务端添加公钥
sudo sh -c "cat id_rsa.pub >> .ssh/authorized_keys"
- 初始化Git仓库
首先我们选定一个目录作为Git仓库,假定是/home/gitrepo/test.git,在/home/gitrepo目录下输入命令
cd /home
mkdir gitrepo
chown git:git gitrepo/
cd gitrepo
git init --bare test.git
以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。
仓库操作
- 本地win上新建一个文件夹git1,clone
git clone git@192.168.38.34:/home/gitrepo/test.git
你需要将其修改为你自己的 Git 服务 ip,这样我们的 Git 服务器安装就完成。
- push
第一次push需要设置用户邮箱和名字,随便设置
进入test文件夹,新建一个文本文档
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
git add -A
git commit
- 再clone
新建一个文件夹git2
git clone git@192.168.38.34:/home/gitrepo/test.git
说明成功了。
分支管理
- 默认有一个master分支
- master分支只有一个文件1.txt
- 新建分支test1
git branch test1
- git branch查看分支
- 切换到test1分支并新增一个2.txt文件,提交
git checkout test1
在git1/test文件夹下,右键新建一个2.txt
git add -A
git commit
- 切换到master发现还是只有一个1.txt文件,再合并分支test1到主干
避坑指南
如果后面再搭建个gitlab后,你会发现clone的时候每次都要输入密码,且密码不论输入什么都不行,那是因为gitlab会自动创建5个用户包括git!!
然后密码我们又是不知道的,坑了我一下午!!
passwd git改下密码就好了!!