侧边栏壁纸
博主头像
Lin2J博主等级

升级了服务器,访问应该会更加流畅🇨🇳

  • 累计撰写 99 篇文章
  • 累计创建 43 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

git 搭建私人仓库以及优化流程

Lin2J
2021-12-21 / 0 评论 / 0 点赞 / 594 阅读 / 1,456 字 / 正在检测是否收录...

以下操作都是通过 root 用户进行的。

首先要确保服务器上面有 git。如果没有,可以通过 yum install git 进行安装。

安装完之后创建一个 git 的用户和用户组(-G 参数自动创建用户组 git),并且指定使用的 shell。

useradd -s /usr/bin/git-shell -d /home/git -G git git

使用 git-shell 确保这个账号能推拉代码,但是不能通过 ssh 登录,通过 ssh 会报错。

Last failed login: Tue Dec 21 09:47:56 CST 2021 from xx.6.116.12 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Dec 20 17:19:03 2021 from xx.6.116.12
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to xxxx.com closed.

之后使用 passwd git 给 git 用户更改一下密码。

接下来,创建一个测试用的仓库,仓库本质上是一个 git 用户的目录。

# 创建测试目录
mkdir /home/git/test.git
# 初始化为 git 仓库,请务必增加 --bare 参数
git --bare init /home/git/test.git
# 将 test.git 目录分给 git 用户,否则提交不了代码,权限不足
chown -R git:git /home/git/test.git

现在就可以使用这个仓库了。

具体使用跟 github 上的仓库一样,本地指定远程仓库的位置即可。

git remote add origin git@xxx.com:/home/git/test.git

优化流程

每次创建仓库都需要特地登录到服务器然后执行几句命令,用起来不舒服。

因此增加两个脚本来帮助创建远程仓库。

两个脚本一个是在服务器上的,用于创建远程仓库,一个是本地使用的,执行前一个脚本。

仓库名称可以通过脚本参数传入,增加灵活性

服务器脚本:create_repo.sh(脚本是属于 root 用户的,放在 /homt/git/ 目录下)

#!/bin/bash
# 创建仓库目录
mkdir /home/git/$1.git
# 初始化为 git 仓库,请务必增加 --bare 参数
git --bare init /home/git/$1.git
# 将目录分给 git 用户,否则提交不了代码,权限不足
chown -R git:git /home/git/$1.git

本地脚本:create_remote_repo.sh

#!/bin/bash
# xxx.com 改为自己的服务器域名或者 id 即可
ssh root@xxx.com "sh /home/git/create_repo.sh $1"

接下来要创建远程仓库的时候,只需要在本地执行命令即可。

sh create_remote_repo.sh test

以上就是搭建私人仓库的过程,并不复杂。

原文:https://blog.csdn.net/wzg_inspur/article/details/82255493

git init 和 git --bare init 的区别在于
git init 带工作区
git --bare init 是不带工作区的,只有版本库,想要看git里面的内容只能通过git clone address的方式克隆出来

0

评论区