一、安装git
直接通过apt-get安装git。
apt-get install git -y
1.1 创建git用户
创建git账号并登录,指定用户目录为/home/git
user add git -d /home/git -m -s /bin/bash
su git
添加用户 user add
-d: 指定用户目录
-m: 如果目录不存在则创建
-s: 可以指定用户使用的命令
二、创建sample库
需使用--bare 参数。作为代码仓库服务器并不会在上面修改东西。
git init --bare sampe.git
三、设置SSH Key做免密
收集客户端公钥,复制到服务器上。数字签名文件id_rsa.pub在.ssh用户目录中。通常情况下windows在用户(一般都是 Administrator)下的 .ssh 文件夹中,Mac在~/.ssh目录中。
生成本地用户的签名文件,并把客户端上公钥导入到服务器上.
现有两个客户端的key文件mymac.pub和mywin.pub导入。
ssh-keygen -t rsa
cat mymac.pub >> ~/.ssh/authorized_keys
cat mywin.pub >> ~/.ssh/authorized_keys
3.1 客户端获取sample库,并添加文件上传到服务器
Windows上可以直接使用git获取。
git@服务器地址:/钩子文件的路径.git
新建一个文件并提交到服务器上。在服务器上通过git log就能看到第二提交的内容。
这样Git服务器仓库就搞定了。
四、安全
为安全考虑Git账号只允许使用git-shell。在passwd文件中找到git用户,把/bin/bash直接修改成/usr/bin/git-shell 登录root账号,并修改git的用户权限。
su
vim /etc/passwd
这样git用户只能git-shell命令不能登录了。
使用su git命令就会出现下面提示,git用户就无法登录到shell,这样就OK了。

五、hexo博客的额外配置
在var目录下创建repo作为git仓库目录,以及给予权限
mkdir /var/repo
创建一个目录来作为hexo网站根目录,并给予权限
mkdir /var/hexo
chown -R git:git /var/hexo
chmod -R 755 /var/hexo
权限部分很重要,否则在后续Windows端推送时会报错权限不够
remote: error: unable to unlink old '<file>' (Permission denied)
5.1 自动部署配置
接3.1后,进入钩子文件cd /var/repo/simple.git下有一个自动生成的hooks文件夹。我们需要在里边建一个新的钩子文件post-receive。
vim /var/repo/simple.git/hooks/post-receive
将下面两行代码粘贴进去保存退出。
#!/bin/bash
git --work-tree=/var/hexo --git-dir=/var/repo/simple.git checkout -f
修改权限
chown -R git:git /var/repo/hexo.git/hooks/post-receive
chmod +x /var/repo/hexo.git/hooks/post-receive
这样关于博客的自动部署就搞定了。
六、git使用
拷贝项目:
git clone <仓库地址>创建分支:
git branch <name>创建并进入分支:
git checkout -b <name>查看状态:
git status添加所有文件:
git add .提交:
git commit -m '这里填提交的描述信息'拉取:
git pull推送:
git push查看分支:
git branch -list查看分支(含远程分支):
git branch -a
工作中项目分支管理
master:主分支,一般都不会在此分支开发项目
dev:开发分支,一般在此分支上开发
版本分支:建立于dev分支下面
如:feature-vueAdmin-V1.0.0-20230611
feature:描述当前分支类型
vueAdmin:项目名称
V1.0.0:版本号
20230611:建立分支日期
BUG分支:建立于当前版本分支下
如:bur-101112-20230611
bug:分支类型
101112:bug的ID
20230611:建立分支的日期
小知识
1.git工作流程
首先执行 git pull 获取远程仓库的最新代码,进行代码的编写。
完成相应功能的开发后执行 git add . 将工作区代码的修改添加到暂存区,再执行 git commit -m 完成xx功能 将暂存区代码提交到本地仓库并添加相应的注释,最后执行 git push 命令推送到远程仓库。
2.撤回提交到仓库的代码
当执行了 git commit -m 注释内容 命令想要撤回,可以使用 git reset --soft HEAD^ 把本地仓库回退到当前版本的上一个版本,也就是刚刚还没提交的时候,代码的改动会保留在暂存区和工作区。
也可以使用 git reset --mixed HEAD^,这样不止回退了刚刚的 git commit 操作,还回退了 git add 操作,代码的改动只会保留在工作区。因为 --mixed 参数是 git reset 命令的默认选项,也就是可以写为 git reset HEAD^。
3.撤回发送到远程的代码
当执行了 git push 命令想要撤回,可以使用 git reset HEAD^ 将本地仓库回退到当前版本的上一个版本,代码的修改会保留在工作区,然后使用 git push origin xxx --force 将本地仓库当前版本的代码强制推送到远程仓库。
欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1701220998@qq.com