【linux】Ubuntu上搭建git服务器

Ubuntu Git服务搭建
本文详细介绍在Ubuntu系统上搭建Git服务的步骤,包括安装Git、创建Git用户、建立仓库、禁用shell登录及本地仓库操作,适合新手快速上手。
一、在Ubuntu上安装git

登录到Ubuntu系统
ssh root@server_ip
先测试有没有安装git,运行git命令如果提示需要安装则运行安装命令
sudo apt-get install git

二、Ubuntu上为git服务创建单独用户git

创建一个新用户名叫git(名称自定义)
sudo adduser git
完成后在/home目录就会多一个git目录:/home/git
在/home/git目录下创建.ssh文件夹:/home/git/.ssh
进入.ssh文件夹创建文件authorized_keys用来保存客户端公钥:
vim authorized_keys
在客户端机器创建公私钥,将生成的公钥文件id_rsa.pub中内容全部复制到服务器authorized_keys文件中。一行一个。
即授权客户端通过ssh协议访问这台服务器。

三、Ubuntu上创建git仓库

在服务器上创建git仓库,比如在/home/git/路径下创建仓库:sample.git
sudo git init --bare sample.git
修改所有者权限(git用户拥有读写权限):
sudo chown -R git:git sample.git

完成这一步,就可以在客户端克隆和提交代码了:
git clone git@server_ip:/home/git/sample.git

四、禁用shell登录

出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git: x:1001:1001:,:/home/git:/bin/bash
改为:
git: x:1001:1001:,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell。

五、创建本地仓库

Command line instructions

Git global setup

git config --global user.name "nannan"
git config --global user.email "nannan@bilibili.com"

Create a new repository

git clone git@git.bilibili.co:game/mfe/sdk/foreign-android-universal-sdk.git
cd foreign-android-universal-sdk
touch README.md
git add README.md
git commit -m "add README"

Existing folder

cd existing_folder
git init
git remote add origin git@git.bilibili.co:game/mfe/sdk/foreign-android-universal-sdk.git
git add .
git commit -m "Initial commit"

Existing Git repository

cd existing_repo
git remote rename origin old-origin
git remote add origin git@git.bilibili.co:game/mfe/sdk/foreign-android-universal-sdk.git
Linux环境下搭建本地Git服务器主要涉及以下几个关键步骤: 1. **安装Git** Git搭建Git服务器的基础,可以通过系统包管理器进行安装。例如,在基于Debian的系统(如Ubuntu)上,可以使用以下命令安装Git: ```bash sudo apt-get update sudo apt-get install git ``` 安装完成后,可以通过`git --version`命令验证Git是否成功安装,输出类似`git version 2.17.0`的信息表示安装成功[^3]。 2. **创建Git用户** 为了安全起见,建议为Git服务器单独创建一个用户。可以通过以下命令创建一个名为`git`的用户: ```bash sudo adduser git ``` 创建完成后,切换到`git`用户并进入其主目录: ```bash su - git ``` 3. **设置SSH访问** Git通常通过SSH协议进行通信,因此需要在服务器上配置SSH访问。在`git`用户的主目录下创建`.ssh`目录,并生成SSH密钥对: ```bash mkdir .ssh chmod 700 .ssh ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 生成的密钥文件会存放在`.ssh`目录中,公钥文件(`id_rsa.pub`)可以用于配置客户端的访问权限[^2]。 4. **初始化Git仓库** 在服务器上创建一个空的Git仓库,可以通过以下命令实现: ```bash git init --bare sample.git ``` 该命令会在当前目录下创建一个名为`sample.git`的空仓库,`--bare`参数表示这是一个裸仓库,适合用于服务器端存储。 5. **配置Git仓库** 如果团队规模较小,可以直接将客户端的公钥添加到服务器的`.ssh/authorized_keys`文件中,以实现免密访问。如果团队规模较大,可以考虑使用Gitosis等工具来管理公钥。例如,克隆Gitosis仓库并进行配置: ```bash git clone https://github.com/res0nat0r/gitosis.git ``` Gitosis可以简化公钥管理流程,适合大型团队使用[^4]。 6. **启动Git服务** Git本身不需要独立的服务进程,而是通过SSH或HTTP协议提供服务。确保SSH服务已启动即可: ```bash sudo service ssh start ``` 客户端可以通过以下命令克隆服务器上的仓库: ```bash git clone git@your_server_ip:sample.git ``` 其中`your_server_ip`是Git服务器的IP地址。如果配置正确,客户端将能够直接克隆仓库,而无需手动确认连接或输入密码。 ### 客户端配置 在客户端,无论是Linux还是Windows系统,都需要安装Git。例如,在Ubuntu上可以使用以下命令安装Git: ```bash sudo apt-get install git ``` 在Windows上,可以从Git官网下载安装程序并按照提示进行安装。安装完成后,可以通过命令行工具使用Git命令与服务器进行交互[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值