你的第一个 Git 实验

GitGitBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

欢迎来到你第一次激动人心的 Git 世界之旅!如果你曾经希望可以回到过去修复工作中的错误,或者如果你在跟踪项目中的变化时遇到困难,那么你将会有一次愉快的体验。Git 就像是你的代码和文档的时间机器,通过这个实验,你将掌握控制它的能力!

如果你以前从未听说过 Git,也不用担心——我们将从最基础的部分开始,并逐步引导你完成每一步。在这个实验结束时,你将了解如何创建一个 Git 仓库、跟踪更改以及进行提交。这些是全球开发者每天用来创建出色软件的基本技能。让我们开始我们的冒险吧!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") git/SetupandConfigGroup -.-> git/init("Initialize Repo") git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/commit("Create Commit") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills linux/echo -.-> lab-92739{{"你的第一个 Git 实验"}} git/init -.-> lab-92739{{"你的第一个 Git 实验"}} git/add -.-> lab-92739{{"你的第一个 Git 实验"}} git/status -.-> lab-92739{{"你的第一个 Git 实验"}} git/commit -.-> lab-92739{{"你的第一个 Git 实验"}} linux/cat -.-> lab-92739{{"你的第一个 Git 实验"}} git/log -.-> lab-92739{{"你的第一个 Git 实验"}} end

创建你的秘密实验空间

在我们深入 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 init

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

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

哇!你刚刚创建了自己的时间机器!但为什么我们需要为代码准备一个时间机器呢?

想象一下,你正在写一个故事。你可能想尝试不同的结局,或者不小心删除了你非常喜欢的一段文字。如果没有 Git,你将不得不手动保存故事的不同版本,最终会得到像 "story_final.txt"、"story_final_v2.txt"、"story_final_REALLY_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 已经注意到了我们的新文件,但它告诉我们这个文件是“未跟踪的”。这是 Git 的一个很酷的特性——它不会自动跟踪文件夹中的每个文件。这让你可以控制哪些更改需要包含在项目历史中。

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

在下一步中,我们将告诉 Git 我们希望跟踪这个文件。这就是 Git 开始感觉像超能力的地方——你即将创建你的第一个时间保存点!

准备你的第一个保存点

现在,我们将告诉 Git 我们希望将 message.txt 包含在下一个保存点中(在 Git 术语中称为“提交”)。我们使用 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 的暂存区(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 <[email protected]>
Date:   Mon Aug 7 10:00:00 2023 +0000

    Send a message to the future

这条日志记录显示了几个信息:

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

这个日志就像你项目的时间线。随着你进行更多的提交,它们会被添加到这个日志中,形成项目的完整历史记录。当你试图了解项目是如何随着时间的推移而演变时,或者当你需要找到某个特定更改是什么时候进行的时,这非常有用。

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

想象一下,你正在参与一个小组项目。使用 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 超能力创造出什么惊人的项目呢?