在云服务器自建git仓库并使用

本文最后更新于 2025年4月17日 早上

必备条件

  1. 一台云服务器,具备公网IP(如果需要开放访问的话)
  2. 云服务器上安装了git
  3. 拥有一个在此云服务器上的用户账户的访问权限

这些条件不难达成,买一台轻量云服务器即可实现,腾讯云的很便宜。

官方相关文档

官方文档:git-remote有更详细的介绍,只是它是英文的。

服务器建立空仓库

基本步骤就是创建一个空文件夹,通过git初始化命令init加上--bare选项。以CentOS为例,步骤如下:

  1. 创建一个空文件夹:mkdir git_repos
  2. 进入该文件夹:cd git_repos
  3. 初始化空仓库:git init --bare 如果反馈类似于Initialized empty Git repository in /home/<userName>/git_repos/的提示,说明初始化成功。

链接本地仓库

远程仓库链接本地仓库有两个方向,一种是从远程仓库同步到本地计算机,一种是从本地计算机上传到远程仓库。

一、从远程空仓库到本地仓库

最简单的,直接从服务器上克隆下来,然后把分支匹配下。

1. 克隆仓库

进入需要保存仓库的文件夹,打开类似于git bash这样的终端,执行以下命令;

1
2
3
4
5
6
git clone <userName>@<host>:/<destination address>/<repos>

# <userName>: 你的远程服务器用户名
# <host>: 你的远程服务器地址,可以是IP(省事),也可以是被解析的域名(需要去配置一下)
# <destination address>: 仓库所在路径,比如上面个例子就是`/home/<userName>/`
# <repo>: 仓库文件夹名称,以上面为例,就是`git_repos`

如果执行完后,得到了类似这样的一个返回warning: You appear to have cloned an empty repository. 说明成功了,因为这个就是一个空仓库。

当然,也有可能执行不成功,一般而言都会有提示,通常来说两种:

  1. 没有权限读取,检查下是否配置好了ssh连接
  2. 不是git仓库,检查下是否写错了地址

对症下药即可。

克隆到本地的仓库,默认会在本地仓库里面保存一个远程仓库的地址,而且这个远程仓库默认名称为origin,可以通过git remote get-url origin命令查看是否和上面的<userName>@<host>:/<destination address>/<repo>一致。

2. 匹配分支

本地仓知道对应的远程仓库还不够,还需要告知推送到远程仓库的哪个分支(这里的认知有点模糊,这是我的理解)。

在本地文件发生变动,并完成commit命令之后,第一次执行push命令,需要告知推送到远程哪个分支,执行
以下命令达成:git push -u origin master

后面就可以愉快的直接push了。

二、从本地仓库到远程空仓库

本地仓库到远程空仓库,只是增加了一个代码的远程存储点。这意味着2层含义:

  1. 本地仓库可以是非空仓库
  2. 本地仓库可以有多个远程仓库(给不同仓库命名不同的名称,默认仓库名是’origin’)

本地提交到远程也是有两步,一是设置远程仓库地址,二是分支匹配。

1. 添加远程仓库

进入本地文件夹,在该文件夹打开终端,利用git remote命令添加即可。

1
2
3
4
5
git remote add <repo-name> <url>

1. repo-name 自定义的远程仓库名
2. url 远程仓库的地址

2. 分支匹配

git push <repo> -u <branch>


在云服务器自建git仓库并使用
https://www.xiebingyuan.cn/2022/04/d31fb684070b/
作者
bingyuan
发布于
2022年4月13日
更新于
2025年4月17日
许可协议