在云服务器自建git仓库并使用
本文最后更新于 2025年4月17日 早上
必备条件
- 一台云服务器,具备公网IP(如果需要开放访问的话)
- 云服务器上安装了git
- 拥有一个在此云服务器上的用户账户的访问权限
这些条件不难达成,买一台轻量云服务器即可实现,腾讯云的很便宜。
官方相关文档
官方文档:git-remote有更详细的介绍,只是它是英文的。
服务器建立空仓库
基本步骤就是创建一个空文件夹,通过git
初始化命令init
加上--bare
选项。以CentOS为例,步骤如下:
- 创建一个空文件夹:
mkdir git_repos
- 进入该文件夹:
cd git_repos
- 初始化空仓库:
git init --bare
如果反馈类似于Initialized empty Git repository in /home/<userName>/git_repos/
的提示,说明初始化成功。
链接本地仓库
远程仓库链接本地仓库有两个方向,一种是从远程仓库同步到本地计算机,一种是从本地计算机上传到远程仓库。
一、从远程空仓库到本地仓库
最简单的,直接从服务器上克隆下来,然后把分支匹配下。
1. 克隆仓库
进入需要保存仓库的文件夹,打开类似于git bash
这样的终端,执行以下命令;
1 |
|
如果执行完后,得到了类似这样的一个返回warning: You appear to have cloned an empty repository.
说明成功了,因为这个就是一个空仓库。
当然,也有可能执行不成功,一般而言都会有提示,通常来说两种:
- 没有权限读取,检查下是否配置好了ssh连接
- 不是git仓库,检查下是否写错了地址
对症下药即可。
克隆到本地的仓库,默认会在本地仓库里面保存一个远程仓库的地址,而且这个远程仓库默认名称为origin
,可以通过git remote get-url origin
命令查看是否和上面的<userName>@<host>:/<destination address>/<repo>
一致。
2. 匹配分支
本地仓知道对应的远程仓库还不够,还需要告知推送到远程仓库的哪个分支(这里的认知有点模糊,这是我的理解)。
在本地文件发生变动,并完成commit
命令之后,第一次执行push
命令,需要告知推送到远程哪个分支,执行
以下命令达成:git push -u origin master
。
后面就可以愉快的直接push
了。
二、从本地仓库到远程空仓库
本地仓库到远程空仓库,只是增加了一个代码的远程存储点。这意味着2层含义:
- 本地仓库可以是非空仓库
- 本地仓库可以有多个远程仓库(给不同仓库命名不同的名称,默认仓库名是’origin’)
本地提交到远程也是有两步,一是设置远程仓库地址,二是分支匹配。
1. 添加远程仓库
进入本地文件夹,在该文件夹打开终端,利用git remote
命令添加即可。
1 |
|
2. 分支匹配
git push <repo> -u <branch>