在现代软件开发和运维环境中,代码仓库已经成为团队协作和版本管理的重要基础设施。为了理解企业代码托管平台的基本原理,我在 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 addgit 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-03-11