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

本文介绍如何在服务器上搭建私人Git仓库,包括安装Git、创建Git用户、初始化仓库及权限设置等步骤,并提供自动化脚本提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章首发于个人博客,欢迎访问关注:https://www.lin2j.tech

以下操作都是通过 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.youkuaiyun.com/wzg_inspur/article/details/82255493

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

### 创建 Gitee 私有仓库 为了在 Gitee 上创建私有仓库,需遵循一系列操作流程来确保项目的安全性和隐私性。 #### 登录并新建仓库 登录 Gitee 后,在页面右上方找到加号 (+) 并点击它,随后选择“新建仓库”。此时将进入新仓库的创建界面[^2]。 #### 配置仓库属性 在此界面上可以设定仓库的具体参数,包括但不限于: - **仓库名称**:定义清晰易懂的名字以便识别。 - **路径**:即 URL 中的一部分,默认情况下与仓库名相同。 - **描述**:简短概括此仓库用途或主要内容。 - **可见性选项**:务必勾选“私有”,这样仅限授权用户可查看和克隆该仓库的内容。 - **初始化设置**:可以选择预设 `.gitignore` 文件以及指定编程语言对应的忽略规则;还可以决定是否加入开源许可协议等附加组件。 对于希望完全控制访问权限的情况,建议不启用任何公开共享特性,并确认选择了私有的选项。 #### 添加 SSH 密钥 (可选) 为了让 Git 能够无密码推送更改至远程服务器,可以在本地生成一对 SSH 密钥对并将公钥添加Gitee 的账户设置里。具体做法是在命令行执行 `ssh-keygen` 命令生成密钥对后,前往 Gitee 用户中心 -> 设置 -> SSH 公钥处粘贴刚才复制好的公钥内容[^4]。 #### 初始化本地仓库并与远端关联 假设已经有一个现成的 Maven 项目位于磁盘上的某个位置,则可以通过如下指令将其托管于刚刚建立起来的新建私有仓库之中[^5]: ```bash cd /path/to/local/project/ git init git add . git commit -m "Initial commit" git remote add origin git@gitee.com:{username}/{repo-name}.git git push -u origin master ``` 以上步骤完成后便成功地把本地代码同步到了云端的私人空间内,实现了版本管理和协作开发的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值