你的第一个 Git 实验

GitBeginner
立即练习

介绍

欢迎开启你在 Git 世界的第一次精彩旅程!如果你曾希望能够穿越回过去,修复工作中的某个错误,或者如果你在追踪项目更改时感到力不从心,那么你一定会爱上 Git。Git 就像是你代码和文档的时光机,在本次实验结束时,你将拥有掌控它的力量!

如果你从未听说过 Git,也不必担心——我们将从零开始,引导你完成每一个步骤。通过本次实验,你将理解如何创建 Git 仓库、追踪更改以及进行提交。这些是全球开发者每天在创造神奇软件时都会用到的核心技能。让我们开始冒险吧!

这是一个引导式实验,提供了逐步指导来帮助你学习和练习。请仔细遵循说明完成每个步骤并获得实战经验。历史数据显示,这是一个中级难度的实验,完成率为 79%。它获得了学习者 100% 的好评率。

创建你的秘密实验室

在深入学习 Git 之前,我们先来搭建一个工作区。把它想象成一个秘密实验室,你所有的实验都将在这里进行。

打开你的终端

打开你的终端(别担心,它没看起来那么可怕!),输入这些神奇的指令:

cd ~/project
mkdir my-time-machine
cd my-time-machine

以下是这些指令的作用:

  1. cd ~/project:将你传送到项目文件夹。
  2. mkdir my-time-machine:创建一个名为「my-time-machine」的新文件夹。
  3. cd my-time-machine:让你进入这个新的秘密实验室。

恭喜!你刚刚为你的第一个 Git 项目创建了一个空间。但为什么我们需要这个特殊的文件夹呢?在编程世界里,保持工作井然有序至关重要。随着项目的增长,你会庆幸为每一个项目都准备了专属的空间。

初始化你的时光机(Git 仓库)

现在我们有了秘密实验室,是时候建造我们的时光机了!在编程界,我们把这个时光机称为「Git 仓库」(Git repository)。

在终端输入这个命令:

git init

你应该会看到类似这样的消息:

Initialized empty Git repository in /home/labex/project/my-time-machine/.git/

哇!你刚刚创建了属于你自己的时光机!但为什么我们的代码需要时光机呢?

想象一下你正在写一个故事。你可能想尝试不同的结局,或者你可能不小心删除了一个你非常喜欢的段落。如果没有 Git,你必须手动保存故事的不同版本,最后会得到像「story_final.txt」、「story_final_v2.txt」、「story_final_真的最终版.txt」这样的文件。听起来很熟悉吧?

Git 解决了这个问题。它允许你在不创建多个文件的情况下保存工作的不同版本。你可以轻松地回到过去的任何版本,或者创建替代的时间线(我们称之为「分支」)来尝试不同的想法。这就是开发者热爱 Git 的原因——它赋予了他们实验的自由,而无需担心丢失工作成果。

检查时光机的状态

现在我们有了时光机,让我们看看它能告诉我们什么。在 Git 中,我们使用 git status 命令来执行此操作。这就像是在问你的时光机:「现在情况怎么样?」

尝试一下:

git status

你应该会看到类似这样的内容:

On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)

这看起来可能有点令人困惑,让我们来拆解一下:

  • 「On branch master」:把分支想象成一条时间线。「master」是你项目的主时间线。
  • 「No commits yet」:提交(commit)就像是电子游戏中的存档点。我们还没有创建任何存档点。
  • 「nothing to commit」:目前没有需要 Git 记录的更改,因为我们还没有创建任何文件。

你可能会问:「为什么只是保存文件就需要这么多步骤?」好问题!与普通的保存不同,Git 允许你随着时间的推移保存项目的多个版本。这意味着你可以自由地进行实验,因为你知道如果出了问题,你随时可以回到之前的版本。这就像是为你的整个项目配备了无限次的「撤销」功能!

创建你的第一个文件

现在,让我们创建一些东西让时光机来追踪。我们先从文件中的一条简单消息开始:

echo "Hello, Future Me" > message.txt

这个命令创建了一个名为 message.txt 的新文件,里面写着「Hello, Future Me」。

让我们检查一下写了什么:

cat message.txt

你应该会看到:

Hello, Future Me

太棒了!我们创建了第一个文件。但 Git 的魔力现在才开始显现。目前,这个文件存在于你的电脑上,但 Git 还没有追踪它。这就像我们写了一张便条,但还没有把它放进我们的时间胶囊(Git 仓库)里。

在接下来的步骤中,我们将看到 Git 如何对这个新文件做出反应,以及我们如何开始追踪它的更改。这就是 Git 相比普通保存文件的闪光之处。有了 Git,你将能够准确地看到改变了什么、什么时候改变的以及为什么要改变。想象一下,在处理大型项目时,这将是多么有帮助!

再次检查状态

既然我们已经创建了一个文件,让我们问问时光机它看到了什么。再次运行 git status 命令:

git status

这一次,你应该会看到不同的内容:

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        message.txt

nothing added to commit but untracked files present (use "git add" to track)

太令人兴奋了!Git 注意到了我们的新文件,但它告诉我们该文件是「未追踪的」(untracked)。这是 Git 的酷炫之处之一——它不会自动追踪文件夹中的每一个文件。这让你能够控制哪些更改需要包含在项目历史中。

你可能会想:「为什么不自动追踪所有内容呢?」想象一下你正在做一个大项目。你可能有一些不想追踪的文件——比如个人笔记或临时文件。Git 让你选择哪些内容是重要的并需要追踪,从而保持项目历史的整洁和有意义。

在下一步中,我们将告诉 Git 我们想要追踪这个文件。这就是 Git 开始展现超能力的地方——你即将创建你的第一个时间存档点!

准备你的第一个存档点

现在,我们要告诉 Git,我们希望在下一个存档点(在 Git 术语中称为「提交」)中包含 message.txt。我们使用 git add 命令来完成:

git add message.txt

这个命令不会产生任何输出,但它已经告诉 Git 开始追踪 message.txt 了。

让我们再次检查状态,看看发生了什么变化:

git status

现在你应该看到:

On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   message.txt

看!Git 现在正在追踪我们的文件,并且它已经准备好被提交了。这种先「添加」后「提交」的两步过程起初可能看起来有点复杂,但它实际上是 Git 的核心优势之一。

想象你正在准备一个时间胶囊。git add 命令就像是决定你想把什么东西放进胶囊里,而提交(我们下一步要做的)就像是正式密封胶囊。这让你能够仔细挑选进入项目历史中每个存档点的内容。

当你处理更大的项目时,这个功能非常有用。你可能修改了十个文件,但只想提交其中三个文件的更改。Git 的暂存区(staging area,即 message.txt 现在所处的位置)正是为此设计的!

创建你的第一个存档点(提交)

现在到了激动人心的时刻——我们要创建第一个提交(commit)了!提交就像是密封一个时间胶囊。它会保存所有已追踪文件的当前状态,并添加一条描述更改内容的消息。

这是创建提交的命令:

git commit -m "Send a message to the future"

你应该会看到类似这样的输出:

[master (root-commit) a1b2c3d] Send a message to the future
 1 file changed, 1 insertion(+)
 create mode 100644 message.txt

恭喜!你刚刚创建了你的第一个 Git 提交。你正式在项目中保存了一个时间点,并且随时可以回到这里。

这就是 Git 如此强大的原因。每一次提交都是你整个项目在那一刻的快照。你可以根据需要创建任意数量的快照,从而获得详细的项目历史记录。

想象你正在写一篇学校论文。使用普通保存,你只有最新版本。但有了 Git,你可以拥有「初稿」、「添加了结论」、「修复了引言」等存档点。如果需要,你甚至可以回到其中的任何一个点!

查看你的时空旅行日志

既然我们已经完成了第一次提交,让我们查看一下项目的历史记录。我们可以使用 git log 命令来做到这一点:

git log

你应该会看到类似这样的内容:

commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> master)
Author: Your Name <your.email@example.com>
Date:   Mon Aug 7 10:00:00 2023 +0000

    Send a message to the future

这个日志条目向我们展示了几条信息:

  • 提交的唯一标识符(那一长串字母和数字)
  • 谁进行了提交
  • 提交的时间
  • 我们写的提交消息

这个日志就像是你项目的时间线。随着你进行更多的提交,它们会被添加到这个日志中,形成完整的项目历史。当你试图了解项目随时间演变的过程,或者需要查找某项特定更改的发生时间时,这非常有用。

q 键退出日志并返回命令行。记住,在 Git 中,你随时可以按 q 键退出任何全屏视图。

想象你正在协作完成一个小组项目。有了 Git,你可以看到谁做了哪些更改以及为什么要更改,这使得与团队的协调变得更加容易。这也是 Git 被全世界开发者使用的原因之一——它让协作变得简单得多!

总结

恭喜你,时空旅行者!你刚刚完成了你的第一次 Git 冒险。让我们回顾一下你学到的神奇技能:

  1. 如何使用 git init 创建 Git 仓库(你的时光机)
  2. 如何使用 git status 检查仓库状态
  3. 如何创建文件并使用 git add 准备提交
  4. 如何使用 git commit 创建提交(时间存档点)
  5. 如何使用 git log 查看项目历史

你可能会想:「为什么要费这么大劲只是为了保存文件?」好问题!以下是 Git 如此强大的原因:

  1. 详细的历史记录:有了 Git,你就拥有了完整的项目历史。你可以看到改了什么、什么时候改的以及为什么要改。
  2. 实验精神:Git 允许你自由地进行实验。你可以创建项目的不同版本,而不用担心丢失原始工作。
  3. 团队协作:在团队工作中,Git 让你轻松查看谁做了哪些更改以及原因。
  4. 备份:每个 Git 仓库都是项目的完整备份,包括其全部历史记录。

这些是开发者每天在创造神奇软件时使用的基础构建块。随着你继续前行,你将在这些基础之上管理更复杂的项目并与他人协作。

记住,每个人都是从初学者开始的。即使是最资深的开发者也曾经历过你现在的阶段。保持练习,不断实验,最重要的是,享受其中的乐趣!

如果你想了解更多关于 LabEx 及其使用方法,可以访问我们的支持中心。或者你可以观看视频来进一步了解 LabEx。

你进入编程和版本控制世界的旅程才刚刚开始。下一个实验只需点击一下即可开启。让我们继续探索并提升你的技能吧!谁知道你会用新掌握的 Git 超能力创造出什么惊人的项目呢?