Git - 提交更改

简介

你好,有抱负的程序员们!今天,我们将深入了解Git中最基本的概念之一:提交更改。作为你亲切的计算机科学老师,我将逐步引导你完成这一关键过程。别担心如果你是编程新手——我们将从基础开始,逐步提升。在本教程结束时,你将能够像专业人士一样提交更改!

Git - Commit Changes

什么是提交?

在我们深入了解如何操作之前,让我们先了解提交到底是什么。在Git中,提交就像是在项目中的特定时间点拍摄一张快照。这是保存你的工作并跟踪代码库中更改的方式。把它想象成在视频游戏中创建一个检查点——如果需要,你总是可以返回到那个点。

提交的重要性

提交是项目历史的构建块。它们允许你:

  1. 跟踪随时间的变化
  2. 高效地与他人协作
  3. 如果出现问题,回滚到之前的版本
  4. 理解项目的演变

现在我们知道提交的重要性,让我们来学习如何创建提交!

Git提交的基本工作流程

步骤1:检查状态

在提交之前,检查你的仓库状态总是一个好主意。这会告诉你哪些文件已被修改、添加或删除。

git status

你可能会看到这样的输出:

位于分支 main
更改尚未提交:
(使用 "git add <file>..." 更新将要提交的内容)
(使用 "git checkout -- <file>..." 放弃工作目录中的更改)

修改:   hello_world.py

没有更改添加到提交(使用 "git add" 和/或 "git commit -a")

这个输出告诉我们,我们已经修改了一个名为 hello_world.py 的文件,但我们还没有将其暂存以提交。

步骤2:暂存更改

在我们能够提交之前,我们需要暂存我们的更改。暂存就像是在结账前将商品放入购物车。

要暂存所有更改的文件:

git add .

要暂存一个特定的文件:

git add hello_world.py

暂存后,如果我们再次运行 git status,我们会看到:

位于分支 main
将要提交的更改:
(使用 "git reset HEAD <file>..." 取消暂存)

修改:   hello_world.py

步骤3:提交更改

现在我们已经暂存了我们的更改,我们准备提交!

git commit -m "添加hello world函数"

-m 标志允许我们直接在命令行中添加提交信息。总是写清楚、简洁的信息来描述你做了哪些更改。

如果你现在运行 git status,你会看到:

位于分支 main
工作树干净,没有要提交的内容

恭喜你!你已经完成了你的第一个提交!

高级提交技巧

修改提交

有时,你可能忘记添加一个文件或者想更改你的提交信息。而不是创建一个新的提交,你可以修改最后一个提交:

git commit --amend

这将打开你的默认文本编辑器,你可以在其中修改提交信息。如果你想添加忘记的文件:

git add forgotten_file.py
git commit --amend

交互式暂存

对于更多控制你正在提交的内容,你可以使用交互式暂存:

git add -i

这将打开一个交互式菜单,你可以从中选择性地暂存文件的某些部分。

提交的最佳实践

以下是在进行提交时应遵循的最佳实践表格:

实践 描述
频繁提交 进行小而频繁的提交,而不是大而不频繁的提交
写清晰的信息 使用现在时态并在你的提交信息中描述
每个提交一个特性 每个提交应该代表一个单一的逻辑更改
提交前测试 确保你的代码在提交前能正常工作
审查你的更改 使用 git diff 在提交前审查更改

查看提交历史

要查看你的提交历史,使用:

git log

这会显示一个按逆序排列的所有提交列表。你会看到类似这样的内容:

提交 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t
作者:你的名字 <[email protected]>
日期:   Mon Jan 1 12:00:00 2023 +0000

添加hello world函数

提交 9s8r7q6p5o4n3m2l1k0j9i8h7g6f5e4d3c2b1a
作者:你的名字 <[email protected]>
日期:   Sun Dec 31 23:59:59 2022 +0000

初始提交

结论

就这样,大家!你已经学习了Git中提交更改的内外细节。记住,提交就像在游戏中保存进度——经常做,以避免丢失你的辛勤工作。在你继续编程之旅时,你会发现良好的提交习惯会为你节省时间和避免未来的头痛。

实践出真知,所以不要害怕尝试这些命令。在你意识到之前,你将能够在睡梦中提交更改(尽管我不建议在梦中编程——相信我,我试过,编译错误是噩梦般的!)。

继续编码,继续提交,最重要的是,保持乐趣!下次见,这是你亲切的计算机科学老师签名告别。快乐提交!

Credits: Image by storyset