#下载git
yum -y install git
#添加git普通用户
useradd git -d /home/git -m -s /bin/bash
#---------可以不用操作
cd
ssh-keygen -t rsa
cp /root/.ssh/id_rsa.pub /home/
#----------可以不用操作
su git
ssh-keygen -t rsa
su root
vi /etc/ssh/sshd_config
#打开修改:
PubkeyAuthentication yes
AuthorizedKeysFile /home/git/.ssh/authorized_keys
#重启sshd:
systemctl restart sshd
#切换用户:
su git
cd
git init --bare simple.git #simple.git 版本库的名称 可以随便写
git config --global push.default simple #simple是git的配置 不能随意更改
#创建用户连接文件,修改权限(权限不修改为600,无密码操作不成功)
touch /home/git/.ssh/authorized_keys
chmod 600 /home/git/.ssh/authorized_keys
#将客户端公钥添加到authorized_keys文件中 步骤省略
需要根据实际情况做对应的操作 例如:
cat /home/id_rsa.pub >> /home/git/.ssh/authorized_keys
#做上述操作后可以在对应的客户端做克隆操作
例如在linux下
su
git clone ssh://git@IP地址:端口/home/git/simple.git
windows亦然
-------------某linux需要从远程服务器上克隆(root用户)--------------------
ssh-keygen -t rsa
cp /root/.ssh/id_rsa.pub /home/git/root.pub
su git
cat /home/git/root.pub >> /home/git/.ssh/authorized_keys
su root
可以执行克隆操作
cd /root
git clone ssh://git@IP地址:端口/home/git/simple.git
git分支操作
创建分支: git branch 分支名称
切换分支: git checkout 分支名称
创建并进入:git checkout b 分支名称
推送:git push origin 分支名称
拉取:git pull origin 分支名称
合并分支(先切换到被合并的分支上,即向哪个分支合并数据就切换到哪个分支)
例如 向主分支合并
1. 切换到主分支 git checkout master
2. 执行合并命令 git merge 分支名
3. 合并后需要执行推送指令 git push origin master
删除分支:git branch -d 分支名
删除分支后需要执行推送操作 git push origin :分支名
创建新分支并推送到远程,其他客户端拉取分支数据后需要执行git checkout 分支名 才可以从分支列表中看到
配置钩子实现客户端push时 代码自动更新
思路 客户端push时 会触发 post-receive中的脚本,在脚本中需要执行 git pull
su git
cat /home/git/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys
cd
测试配置是否生效
git clone ssh://git@ip地址:端口/home/git/simple.git
如果无需输入密码即可克隆说明配置成功
cd /home/git/simple.git/hooks/
vi post-receive 输入
#!/bin/bash
unset GIT_DIR
cd /home/git/simple
/usr/bin/git pull
保存退出
赋予可执行权限
chmod a+x post-receive