如何搭建一个个人私服 Git

本文详细介绍了如何在Ubuntu20.4服务器上搭建个人Git服务器,包括设置SSH登录、更改主机名、安装Git、创建git用户、配置免密连接、创建远程库以及将本地代码推送到服务器。通过这些步骤,可以实现本地与服务器之间的安全、便捷的文件同步。

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

如何搭建一个个人私服 Git

服务器的环境是 ubuntu 20.4 ,我是使用个人笔记本自带的终端进行搭建的。

其实 git 私服就是在服务器中创建了一个名字叫 git 的用户,然后我们使用 git 指令让本机和服务器进行文件传输,git 指令可以帮助我们进行版本控制

1.首次登录阿里云

一开始时我们的服务器密码是阿里云随机生成的用起来比较麻烦,所以可以直接重置密码。

image-20211202230037426

2.使用 ssh 登录
ssh root@IP地址
3.更改主机名

@ 后面显示的就是 hostname,有点长

root@iZuf6dyodvhcv8ku8txmo5Z:~#

使用指令:

如何永久更改主机名

以下是在 vim 环境下更改的

vim /etc/host
4.安装 git 指令

查找每个 git 指令的含义

git 常用指令

先看一下是否有安装 git

image-20211202101154735

没有办法安装,因为 apt 不是最新的

image-20211202103854994

检查 apt 哪些包要更新:

sudo apt updata

更新所有包

sudo apt upgrade
5.创建 git 用户和服务器进行免密连接
sudo adduser git

这个指令就是 linux 中的 useradd 指令,只不过会有一些信息需要填写。相当于在服务器中又创建了一个 user 名字叫 git ,虽然这个名字可以自定义,保险点最好还是别了

需要填写基本信息:

image-20211202105537313

(1)产生密钥

然后需要进入 git 这个用户,将所有的要保存的信息都安装到这个用户下。因为默认是在 root 用户下的,如果用 root 的权限在 git 用户的存储空间中创建一些文件会导致 git 用户没有办法操作一些文件,所以要确认一下是在 git 用户下

su git

要想免密登录服务器就要在自己电脑中生成 ssh 密钥,以及证书。然后将自己电脑的 ssh 密钥放到服务器中,这样服务器就可以知道我的 电脑是安全的。

在自己电脑中输入以下指令:

连接过 github 的应该对这个指令比较熟悉了,我们在用这个指令生成 ssh 密钥后会生成一个文件,将这个文件的内容拷贝到 github 中,他俩的效果是差不多的。就是让对方相信自己。

ssh-keygen

可以使用 -t 参数来对密钥加密

image-20211202142213211

(2)将生成的密钥文件拷贝到服务器

这里要将 .pub 文件拷贝到服务器的 .ssh/aythorized 文件中。实现两个主机通信的方法有很多,这里使用的是 scp 远程连接指令

scp xu_rsa.pub git@1**.***.***.***:~/.ssh/authorized_keys

scp 指令的格式如下:

scp 本机文件名 服务端用户名@IP地址:服务器目标地址

下图是实现命令:

image-20211202142951942

(3)更改本机 config 配置文件

因为刚刚更改了本来默认的密钥名 id_rse 所以要在服务器中配置一下,否则它还是使用 id_rsa 登录验证。只需将下图的三行写入本机 ~/.ssh/config 文件就可以

Host 是服务器的 IP ; User 是所要登录服务器的用户名;最后是验证文件也就是密钥文件的地址

image-20211202145753579

配置ssh,使用自定义 ssh-key 访问特定的服务器

(4)实现无密连接服务器

在本机命令行输入 。

ssh IP地址

这样我的电脑就可以使用 git 这个无密的访问我的服务器了

image-20211202150103943
6.创建远程库

在 /srv 文件夹下创建库。这个是买阿里云服务器时本来就创建好的,我在这个文件夹下创建了一个 hello 的文件夹,然后我们要初始化这个 git 文件夹为一个裸库

image-20211202160025853
7.将服务器的文件 clone 到本地

因为在远程已经创建库了所以下一步就将服务器的文件 clone 到本地

git clone git@139.196.229.191:/srv/hello/hello.git

git clone 指令:

git clone 用户名@IP地址:.git 文件的地址

因为我们刚才已经可以无密的用 git 的用户登录进服务器,所以这里直接将用户名省略掉只用 IP 地址访问就好了

image-20211202160947181

最后就可以看到在本机的桌面上有了这个文件

8.使用 git add 向服务器添加一个文件

本机上的库叫 workplace 工作区,我们需要将 workplace 的文件上传到 Remote。下面的指令就类似于我们往常向 github 传输指令的操作

workplace,remote 的区别

image-20211202163210558

(1) 在 Remote 端创建 hello.git 文件夹

我们需要将我们想要托管的代码上传到 git 用户的 hello.git 文件夹中。当然这个文件夹叫什么名字都好,只不过为了和 github 上的命名方式同一就叫其 xxx.git

mkdir hello.git

然后初始化这个库

git init --bare

参数 --bare 的意思是创建一个裸库

(2)本地 hello 文件夹下初始化 .git

我们需要将本地文件夹 hello 及其里面的内容 push 到 hello.git 中,当然这个名字也是随便取得,因为在最后我们会指定 workplace 和 remote 的地址。

git init
image-20211202160300905

这里模拟在本地 hello 中放一个 txt 文件,然后上传到服务器,所以在本地的 hello 文件夹内创建一个 hello.txt 文件。其中 touch 指令是 Linux 创建文件的指令

touch hello.txt

(1)将 hello.txt 文件添加到 Index

git add hello.txt

(2)将文件提交 Repository 中

git commit -m '备注信息'

-m 就是添加一个 message 备注信息

image-20211202162948135

(3) 先将代码 remote 到源上

将 Repository 的代码 push 到 Remote 中

git remote add origin IP 地址:hello.git

image-20211202232742730

(4)将代码 push 到服务器中

origin 是远程地址,master 是本地地址

git push -u origin master

image-20211202232935228

(5) 验证是否将代码上传到服务器

就是再将上传的代码下载到本地看看里面是否有 hello.txt 文件,这里需要使用 clone 指令

首先先删除原先创建的 hello 文件,因为要将新文件传入了。如果 hello 文件里面有很多内容的话删除时会不断提示需要删除的文件,所以这里使用管道删除所有文件

yes | rm -r hello

image-20211202233323324

然后使用 clone 指令将服务器上的文件下载到本地

git clone git@ip 地址:源文件地址

要是自定义了登录的用户也可以输入 ip 地址登录,可以不用指定登录的用户

git clone ip地址:源文件地址
image-20211202233624839

然后进入到本地下载文件的地址就可以看到 hello 文件夹和里面的 txt 文件啦

image-20211202233947468

话说我这服务器带宽有点慢啊

image-20211204134544936

其他参考资料:

廖雪峰老师网址

Carl 如何搭建私服

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值