在现代软件开发和运维环境中,代码仓库已经成为团队协作和版本管理的重要基础设施。为了理解企业代码托管平台的基本原理,我在 Ubuntu 环境中部署了轻量级 Git 托管平台 Gitea,并通过 Git 命令行将本地代码成功推送到远程仓库。本文记录整个实践过程。

开始部署 Gitea(最关键步骤)

创建存储目录:

mkdir gitea
cd gitea

运行 Gitea 容器:

docker run -d \
--name gitea \
-p 3000:3000 \
-p 222:22 \
-v $(pwd)/data:/data \
gitea/gitea:latest

解释一下:

这条指令是使用 Docker 在后台启动一个 Gitea(一个轻量级的自助 Git 服务,类似私有版的 GitHub)容器。

下面是每个参数的详细拆解:


端口映射 (-p)

  • -p 3000:3000
    • 左侧 (3000):宿主机(虚拟机/服务器)的端口。
    • 右侧 (3000):容器内部 Gitea Web 服务的默认端口。
    • 结果:在浏览器访问 http://服务器IP:3000 就能看到 Gitea 的安装界面。
  • -p 222:22
    • 注意:容器内部的 SSH 默认端口是 22。但宿主机通常已经把 22 端口给自己的 SSH 远程登录用了。
    • 结果:这里将宿主机的 222 映射到容器的 22。以后你用 Git 克隆代码时,SSH 地址会类似于 ssh://git@服务器IP:222/repo.git。

数据持久化 (-v)

  • -v $(pwd)/data:/data
    • $(pwd)/data:宿主机的当前工作目录下的 data 文件夹。
    • :/data:映射到容器内的 /data 目录。
    • 重要性:这是最重要的部分。Gitea 的数据库、代码仓库、配置文件都存在这里。如果不加这一行,容器一旦删除,你的所有代码和账号都会消失。

镜像选择

  • gitea/gitea:latest
    • 这是官方提供的镜像。latest 表示使用最新的稳定版本。

一、实验环境

本次实验使用的环境如下:

项目环境
操作系统Ubuntu 20.04
代码托管平台Gitea
版本控制工具Git
访问方式浏览器 + 命令行
服务器地址172.16.12.130

Gitea Web 访问地址:

http://172.16.12.130:3000

二、部署 Gitea 平台

首先在 Ubuntu 系统中部署 Gitea 服务。部署完成后,通过浏览器访问:

http://172.16.12.130:3000

进入 Gitea 的初始化配置界面。

主要配置如下:

数据库类型:

SQLite3

数据库路径:

/data/gitea/gitea.db

服务器配置:

服务器域名:172.16.12.130
HTTP端口:3000
SSH端口:22
基础URL:http://172.16.12.130:3000/

由于是实验环境,因此选择 SQLite3 作为数据库即可,无需额外安装 MySQL 或 PostgreSQL。

完成配置后点击 立即安装,系统会自动初始化 Gitea。

安装完成后即可登录系统。


三、创建代码仓库

登录 Gitea 后,点击右上角 “+” → 创建仓库。

仓库配置如下:

仓库所有者:

jhin

仓库名称:

the-first-repo-jhin

仓库可见性:

私有仓库

其余选项保持默认,不勾选初始化仓库。

创建完成后进入仓库页面,系统会提示可以通过 Git 命令行向仓库推送代码。

仓库地址为:

http://172.16.12.130:3000/jhin/the-first-repo-jhin.git

四、本地创建项目并初始化 Git

接下来在 Ubuntu 终端创建一个测试项目。

进入 Gitea 工作目录:

cd gitea

创建测试项目:

mkdir testrepo
cd testrepo

创建测试文件:

nano README.md

写入内容:

HALO GITEA

保存文件后,开始初始化 Git 仓库。

git init

该命令会在当前目录生成 .git 目录,用于保存版本控制信息,使该目录成为一个 Git 仓库。


五、添加文件并提交

首先将项目文件加入 Git 暂存区:

git add .

该命令会将当前目录中的所有文件添加到 Git 的暂存区。

然后提交到本地仓库:

git commit -m "Initial commit: My first test file"

这里 -m 参数用于添加提交说明,用来描述本次提交的内容。


六、配置 Git 用户信息

在第一次提交时出现错误:

Author identity unknown
Please tell me who you are

这是因为 Git 需要记录代码作者信息,因此需要配置用户名和邮箱。

执行:

git config --global user.name "jhin"

设置 Git 用户名。

然后设置邮箱:

git config --global user.email "jhin@test.com"

--global 表示该配置在当前系统所有 Git 仓库中生效。

配置完成后再次提交即可成功。


七、配置远程仓库

接下来需要将本地仓库与远程 Gitea 仓库建立连接。

最初配置的远程仓库地址是:

git remote set-url origin http://172.16.12.130:3000/jhin/the-first-repo-jhin.git

可以通过以下命令检查远程仓库配置:

git remote -v

输出结果:

origin http://172.16.12.130:3000/jhin/the-first-repo-jhin.git (fetch)
origin http://172.16.12.130:3000/jhin/the-first-repo-jhin.git (push)

说明远程仓库配置成功。


八、修改分支并推送代码

Git 初始化时默认分支为 master,而 Gitea 默认使用 main 作为主分支,因此需要修改本地分支名称。

git branch -M main

该命令将当前分支重命名为 main。

然后执行推送:

git push -u origin main

输入 Gitea 用户名和密码后,代码成功推送到远程仓库。

终端输出:

[new branch] main -> main
branch 'main' set up to track 'origin/main'

说明推送成功。


九、验证结果

刷新 Gitea 仓库页面,可以看到:

  • README.md 文件
  • 提交记录
  • main 分支

文件内容如下:

HALO GITEA

说明本地代码已经成功同步到远程仓库。


十、实验总结

步骤:

  1. 在 Ubuntu 上部署 Gitea 服务
  2. 使用 Git 初始化本地仓库
  3. 使用 git add 和 git commit 提交代码
  4. 配置 Git 用户信息
  5. 连接远程仓库
  6. 使用 git push 将代码推送到远程仓库

附带一份网上收集的命令速查表,方便查略

Git 常用命令速查表

基础配置

命令含义
git config --global user.name "name"设置 Git 用户名
git config --global user.email "email"设置 Git 邮箱
git config --list查看当前 Git 配置

说明:
用户名和邮箱会记录在每一次代码提交中。


仓库操作

命令含义
git init初始化 Git 仓库
git clone 仓库地址从远程仓库克隆项目
git status查看当前仓库状态

说明:
git init 会创建 .git 目录,用于存储版本信息。


文件操作

命令含义
git add 文件名将文件加入暂存区
git add .将当前目录所有文件加入暂存区
git rm 文件名删除文件并加入版本控制

说明:
Git 提交需要先 add → commit。


提交代码

命令含义
git commit -m "message"提交代码并添加说明
git log查看提交历史
git log --oneline简洁查看提交历史

说明:
-m 后面的内容是 提交说明。


远程仓库操作

命令含义
git remote add origin URL添加远程仓库
git remote -v查看远程仓库地址
git remote set-url origin URL修改远程仓库地址

说明:
origin 是默认远程仓库名称。


推送和拉取

命令含义
git push origin main推送代码到远程仓库
git push -u origin main推送并建立分支跟踪关系
git pull从远程仓库拉取最新代码

说明:
push = 上传代码
pull = 下载代码


分支管理

命令含义
git branch查看本地分支
git branch 分支名创建新分支
git checkout 分支名切换分支
git checkout -b 分支名创建并切换分支
git branch -M main修改当前分支名称

说明:
分支用于多人开发不同功能。


代码合并

命令含义
git merge 分支名合并指定分支到当前分支

示例:

git merge dev

表示把 dev 分支合并到当前分支。


版本回退

命令含义
git reset --hard 提交ID回退到指定版本
git log --oneline查看提交ID

说明:
用于撤销错误提交。


开发中最常见流程:

git init
git add .
git commit -m "update code"
git remote add origin 仓库地址
git push -u origin main

流程说明:

初始化仓库 → 添加文件 → 提交代码 → 连接远程仓库 → 推送代码

Git 的核心流程其实只有三步:

修改代码 → git add → git commit → git push
此作者没有提供个人介绍。
最后更新于 2026-05-12