教程:创建你的第一个 Git 提交
本教程将教你一些关于 Git 工作原理的基础知识。它会指导你完成创建自己的项目、编辑文件以及从命令行将更改提交到 Git 仓库的步骤。
完成后,你将拥有一个可以用来练习使用 Git 的项目。
开始之前
- 在你的本地机器上安装 Git。
- 确保可以登录到 GitLab 实例。如果你的组织没有 GitLab,请在 GitLab.com 上创建一个账户。
- 创建 SSH 密钥并将其添加到 GitLab。SSH 密钥是你的计算机和 GitLab 之间安全通信的方式。
什么是 Git?
在开始步骤之前,我们先来了解一些基本的 Git 概念。
Git 是一个版本控制系统。它用于跟踪文件的更改。
你将文件(如代码或文档)存储在 Git 仓库 中。当你想要编辑文件时,你将 克隆 仓库到你的计算机,进行更改,然后将你的更改 推送 回仓库。在 GitLab 中,Git 仓库位于一个 项目 中。
每次你推送更改时,Git 会将其记录为一个唯一的 提交。这些提交构成了文件何时以及如何更改的历史记录,以及谁进行了更改。
%%{init: { "fontFamily": "GitLab Sans" }}%%
graph LR
accTitle: 仓库提交历史
accDescr: 显示仓库历史线性更改的流程图
subgraph Repository commit history
direction LR
A(Author: Alex<br>Date: 3 Jan at 1PM<br>Commit message: Added sales figures<br> Commit ID: 123abc12) ---> B
B(Author: Sam<br>Date: 4 Jan at 10AM<br>Commit message: Removed old info<br> Commit ID: aabb1122) ---> C
C(Author: Zhang<br>Date: 5 Jan at 3PM<br>Commit message: Added invoices<br> Commit ID: ddee4455)
end
当你在 Git 仓库中工作时,你在 分支 中工作。默认情况下,仓库的内容位于默认分支中。要进行更改,你需要:
- 创建自己的分支,这是你创建分支时默认分支的快照。
- 进行更改并将它们推送到你的分支。每次推送都会创建一个提交。
- 准备好后,将你的分支 合并 到默认分支中。
%%{init: { "fontFamily": "GitLab Sans" }}%%
flowchart LR
accTitle: 在 Git 中使用分支
accDescr: 在 Git 中创建和使用分支的流程
subgraph Default branch
A[Commit] --> B[Commit] --> C[Commit] --> D[Commit]
end
subgraph My branch
B --1#46; Create my branch--> E(Commit)
E --2#46; Add my commit--> F(Commit)
F --3#46; Merge my branch to default--> D
end
如果这一切让你感到有些不知所措,请坚持住。你马上就会看到这些概念的实际应用。
步骤
以下是我们将要做的概述:
创建示例项目
首先,在 GitLab 中创建一个示例项目。
- 在 GitLab 中,在左侧边栏顶部,选择 Create new ( ) 和 New project/repository。
- 对于 Project name,输入
My sample project。项目 slug 会自动为你生成。 这个 slug 是项目创建后你可以用来访问项目的 URL。 - 确保 Initialize repository with a README 已被选中。 其他字段的填写方式由你决定。
- 选择 Create project。
克隆仓库
现在你可以在你的项目中克隆仓库。克隆 仓库意味着你在你的计算机上创建一个副本,或者在你想要存储和操作文件的任何地方。
-
在你的项目概览页面右上角,选择 Code,然后复制 Clone with SSH 的 URL。
-
在你的计算机上打开终端,并转到你想要克隆文件的目录。
-
输入
git clone并粘贴 URL:git clone [email protected]:gitlab-example/my-sample-project.git -
进入目录:
cd my-sample-project -
默认情况下,你已经克隆了仓库的默认分支。这通常是
main分支。为了确认,获取默认分支的名称:git branch你所在的分支会用星号标记。 在键盘上按
Q返回主终端窗口。
创建分支并进行更改
现在你有了仓库的副本,创建你自己的分支,这样你就可以独立地进行更改。
-
创建一个名为
example-tutorial-branch的新分支。git checkout -b example-tutorial-branch -
在文本编辑器(如 Visual Studio Code、Sublime、
vi或任何其他编辑器)中, 打开 README.md 文件并添加以下文本:Hello world! I'm using Git! -
保存文件。
-
Git 会跟踪已更改的文件。要确认哪些文件已更改,获取状态。
git status你应该得到类似于以下的输出:
On branch example-tutorial-branch Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: README.md no changes added to commit (use "git add" and/or "git commit -a")
提交并推送你的更改
你已经对仓库中的文件进行了更改。现在是时候通过进行第一次提交来记录这些更改。
-
将
README.md文件添加到 暂存 区域。暂存区域是你提交文件之前放置文件的地方。git add README.md -
确认文件已暂存:
git status你应该得到类似于以下的输出,文件名应该显示为绿色文本。
On branch example-tutorial-branch Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: README.md -
现在提交暂存的文件,并包含一条描述你所做更改的消息。确保将消息用双引号(")括起来。
git commit -m "I added text to the README file" -
更改已提交到你的分支,但你的分支及其提交仍然只存在于你的计算机上。其他人还无法访问它们。 将你的分支推送到 GitLab:
git push origin example-tutorial-branch
你的分支现在在 GitLab 上可用,并且对你项目中的其他用户可见。
合并你的更改
现在你准备将 example-tutorial-branch 分支的更改合并到默认分支(main)。
-
检出你仓库的默认分支。
git checkout main -
将你的分支合并到默认分支。
git merge example-tutorial-branch -
推送更改。
git push
在本教程中,你将分支直接合并到仓库的默认分支。在 GitLab 中,你通常使用 merge request 来合并分支。
在 GitLab 中查看你的更改
你做到了!你在你的分支中更新了 README.md 文件,并将这些更改合并到了 main 分支中。
让我们在 UI 中查看并确认你的更改。转到你的项目。
现在你可以返回命令行并切换回你的个人分支
(git checkout example-tutorial-branch)。你可以继续更新文件或
创建新文件。输入 git status 查看
你的更改状态并随意提交。
如果你搞砸了也不用担心。Git 中的一切都可以撤销,如果你发现无法恢复,你总是可以创建一个新分支重新开始。
干得好。
查找更多 Git 学习资源
- 在 Git for GitLab 入门课程(1小时33分钟)中全面了解 Git。
- 在 tutorials page 上查找关于 Git 和 GitLab 的其他教程。
- PDF 下载:GitLab Git Cheat Sheet。
- 博客文章:Git Tips & Tricks。
- 博客文章:Eight Tips to help you work better with Git。
- 官方 Git documentation,包括 Git on the Server - GitLab。