CodeGym /课程 /JAVA 25 SELF /Git 入门:为什么需要版本控制

Git 入门:为什么需要版本控制

JAVA 25 SELF
第 25 级 , 课程 0
可用

1. 没有版本控制的问题:仅仅复制文件为何是个坏主意

让我们从一个贴近生活的场景开始。想象你正在开发自己的 Java 项目。一切顺利,直到需要“做实验”的时刻。你决定改点东西,但又担心弄坏稳定版本。怎么办?当然是复制项目!

最终,你的磁盘上会出现这样的“杰作”:

MyProject/
├── Main.java
├── Main_backup.java
├── Main_final.java
├── Main_final2.java
├── Main_really_final.java
├── Main_really_really_final.java

是不是很熟悉?现在再想象一下,你的同事也加入了项目。他也喜欢复制文件——而且有自己的一套。如何判断哪一个是最新且可用的版本?如何知道是谁改了什么?如果实验失败,又该如何恢复一切?

没有版本控制:

  • 很容易丢失或混淆可工作的代码。
  • 无法“回滚”到旧版本。
  • 两三个人协作会非常困难。
  • 混乱不堪,害怕尝试新想法。

这些问题正是版本控制系统——例如 Git——要解决的。

2. 开发者为什么需要 Git?

Git 是一套强大的版本控制系统,用于在软件开发过程中跟踪源代码的更改。它允许开发者保存文件的不同版本,并协调多人在同一项目上的协作。

Git 的基本概念:

仓库

仓库(或“repo”)是保存整个项目历史的地方,包括所有更改和文件版本。

提交

commit 是项目的一个已保存状态。Git 中的每个提交都包含对项目做了哪些更改、由谁在何时完成等信息。提交构成了项目历史,你可以回到任意先前版本。

        gitGraph
        commit id: "1"
        commit id: "2"
        commit id: "3"
        commit id: "4"
        commit id: "5"
        commit id: "6"
    

每个提交都是项目的一个“快照”,按顺序衔接前一个提交,形成连续的更改历史。

分支

branch 是一条独立的开发线路。默认情况下,Git 会创建 main 分支。你可以为新功能或修复创建新分支,然后将其合并回主分支。

        gitGraph
        commit id: "1"
        commit id: "2"
        branch develop
        commit id: "3"
        commit id: "4"
        commit id: "5"
        checkout main
        commit id: "6"
        commit id: "7"
        merge develop
        commit id: "8"
        commit id: "9"
    

从主分支 main“分出”develop 分支以并行开发。完成后,将 develop 的更改合并回 main

3. Git 基本命令(幕后发生的事)

下面是通过终端使用 Git 的基础命令列表。理解这些命令是所有操作的基础。不过我们将坚持使用GUI 方法,学习如何通过 IntelliJ IDEA 的图形界面完成这些操作。把这些命令当作系统“底层”发生的事情。

命令 说明
git init 在当前目录初始化一个新的 Git 仓库。
git clone 从指定 URL 克隆仓库到新目录。
git add 将文件添加到暂存区,准备下次提交。
git commit 将已暂存的更改提交到仓库。
git push 将本地仓库的更改推送到远程仓库。
git pull 将远程仓库的最新版本更新到当前分支。
git branch 显示、创建或删除分支。
git merge 将指定分支的更改合并到当前分支。

这些命令构成了在 Git 中工作的基本工具,帮助你管理代码更改、分支与合并,适用于各种规模的项目。

        sequenceDiagram
        participant 工作目录
        participant 暂存区 (Staging)
        participant 本地仓库
        participant 远程仓库

        工作目录 ->> 暂存区 (Staging): git add(添加到暂存区)
        暂存区 (Staging) ->> 本地仓库: git commit(本地保存)
        本地仓库 ->> 远程仓库: git push(推送到服务器)
        远程仓库 ->> 工作目录: git pull(拉取更新)
    

4. 代码存放的三个位置

当你使用版本控制系统管理代码时,粗略来说,代码会存放在三个地方:

1. 远程仓库

这是集中存放代码的位置,通常托管在 GitHubGitLabBitbucket 等服务上。它们提供集中式的代码存储,是协作的基础。远程仓库也是自动化流程(如构建、测试和应用部署)的集成点。

2. 本地仓库

本地仓库是你在自己电脑上的个人副本。在本地仓库中,你可以在没有网络连接的情况下执行所有 Git 操作(提交、分支、合并等)。

3. 工作目录

工作目录包含你当前正在处理的项目文件。你可以在此查看与修改文件,添加新功能或修复缺陷。

这三者共同构成了强大的源码管理基础设施,使开发者能够管理项目历史并高效协作。

5. GitHub —— 你的作品集

GitHub领先的代码托管平台使用 Git 版本控制系统。自 2008 年成立以来,它迅速成为全球开发者的关键工具之一。

GitHub 允许用户创建仓库以管理项目、控制并跟踪代码更改,并与其他开发者协作。对于现代开发者来说,GitHub 个人主页是作品集的重要组成部分,可展示给潜在雇主。

6. 在 GitHub 上创建你的第一个仓库

步骤 1. 访问 https://github.com 并注册。

步骤 2. 点击 New repository 按钮以创建新仓库。

步骤 3. 配置仓库参数:

  1. 仓库名称:取一个有意义的名字。
  2. 公开还是私有:对于学习项目,建议选择“Public”,便于他人查看。
  3. Add a README file:务必勾选此项。README 是你项目的“门面”。
  4. Add .gitignore:点击下拉列表,选择与你的语言匹配的模板。
  5. Choose a license:可以跳过。
  6. 点击 Create repository

步骤 4. 恭喜,你的第一个远程仓库已创建!

7. 安装与配置 Git

尽管可以通过命令行学习 Git 的基础(视频中已展示),但在日常工作中,99% 的开发者都会使用集成在 IDE 中的便捷工具。我们的目标是教会你用专业人士的方式工作。

JetBrains 家族的现代 IDE 都提供几乎相同的 Git 界面——无论是用于 Java/Kotlin 的 IntelliJ IDEA、用于 C# 的 Rider,还是用于 Python 的 PyCharm。这意味着,一旦你在某个环境中学会了 Git,就能轻松迁移到其他环境。因此,我们将以 IntelliJ IDEA 作为通用示例。你在这里看到的一切,在你喜欢的 IDE 中看起来和工作方式都完全一致。

要在你的电脑上使用 Git,首先需要安装 Git。如果你使用 IntelliJ IDEA,在系统中未找到 Git 时,它很可能会提示自动安装。我们建议接受该提示——这是最简单的方式。

通过选择 File > Close Project 关闭当前项目,然后点击 Clone Repository

如果你想手动安装,请访问官方网站:https://git-scm.com/downloads

8. 一点历史:main vs master

过去,Git 的默认分支被称为 master。但在 2020 年,开发者社区和包括 GitHub 在内的主要平台改用更加中性的术语——main

了解这一点很重要,因为在一些旧文章或旧项目中,你仍可能看到 master 分支的描述。在我们的讲座和现代项目中,主分支一律为 main

关于迁移到 main 的更多信息,请参阅:

1
任务
JAVA 25 SELF, 第 25 级, 课程 0
已锁定
虚拟动物城:认识声音 🧬
虚拟动物城:认识声音 🧬
1
任务
JAVA 25 SELF, 第 25 级, 课程 0
已锁定
宠物个性化:使用 super 分配姓名 🔼
宠物个性化:使用 super 分配姓名 🔼
评论 (1)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
ncksllpo 级别 44,Cherkasy,Ukraine
14 二月 2026
🍟