Git - 生命周期



Git 是一种流行的版本控制技术,用于管理代码库、跟踪文件更改和团队协作。

了解 Git 仓库的生命周期对于熟练掌握这项强大的技术至关重要。

Git 生命周期包含几个阶段,这些阶段代表了文件的状态以及它们如何从仅仅是工作目录的一部分转变为版本控制历史的一部分。Git 生命周期中的主要阶段是:

  • 工作目录 (Working Directory): 你在其中修改文件的目录。

  • 暂存区 (Staging Area): 也称为索引,你的更改暂时存储在此处,你在此处准备要提交的文件。

  • Git 仓库 (Git Directory): Git 在其中存储所有版本历史记录,更改在此处作为提交存储。

  • 远程仓库 (Remote Repository): 你在其中存储版本历史记录并与他人协作的仓库。

此概述为深入了解 Git 版本控制系统中每个状态及其交互奠定了基础。

工作目录

工作目录是 Git 生命周期开始时项目文件存放的地方。它象征着我们积极编写、编辑和完善代码的本地环境。

定义

  • 项目文件位于名为工作目录的本地文件夹中。

  • 使用 `git init` 启动版本控制后,Git 会检测到这些文件,但尚未开始跟踪它们。

  • 目录中还有一个隐藏的 .git 子目录。

已跟踪与未跟踪文件

  • 工作目录包含可以暂存、编辑和未跟踪的文件。

  • 除非我们决定添加它们,否则文件最初是未跟踪的。

  • 我们可以指定要跟踪哪些文件以及要忽略哪些文件;例如,我们可能会排除生成的或临时文件。

Git lifecycle

管理

  • 此目录用作编辑和添加文件的 workspace。

  • 在它们被专门添加到暂存区之前,在此处进行的更改不会对版本历史记录产生影响。

  • 我们可以通过这样做来控制哪些更改被跟踪。

过渡到暂存区

  • 需要使用 `git add` 将更改暂存才能将其包含在版本历史记录中。

  • 文件不包含在提交历史记录中,并在暂存之前保留在工作目录中。

要查看工作目录中文件的狀態,请使用以下命令:

$ git status

此命令提供已暂存、未暂存或未跟踪的文件摘要,帮助你决定下一步该做什么。

暂存区

暂存区是一个沙盒,用于分组、添加和排列需要提交到 Git 以跟踪其版本的文件。

定义

  • 暂存区是 Git 生命周期中的一个关键阶段,我们在此处准备提交文件。

  • 它在工作目录和 Git 仓库之间充当缓冲区。

  • 我们想要包含在下一次提交中的文件在此处被选择和组织。

添加文件

  • git add 命令用于将文件从工作目录移动到暂存区。

  • 此命令会将文件的当前状态复制到暂存区。

  • 我们可以通过选择要添加的文件来排除某些文件,例如临时文件或动态生成的文件。

Git lifecycle

索引

  • 索引是将文件添加到暂存区的过程。

  • 我们计划提交的文件的快照保存在暂存区中,通常称为索引

管理

  • 暂存区管理包含在提交中的更改。

  • 它确保仅跟踪与项目先前版本相关的特定文件。

Git 仓库

Git 在 Git 仓库中内部存储所有版本历史记录、元数据和配置数据。

它包括配置文件、索引(暂存区)、完整的提交历史记录等等。

定义

  • Git 将所有仓库的对象数据库和元数据保存在 Git 仓库中。

  • 它包括配置文件、索引(暂存区)和完整的提交历史记录。

  • Git 需要此仓库才能监督和监控版本控制的各个方面。

存储提交数据

  • 当我们使用 git commit 命令时,Git 仓库会存储提交数据,其中包括已暂存文件的快照、提交消息、作者信息和时间戳。

  • 所有提交对象(对于监控项目的版本历史记录至关重要)都存储在此目录中。

Git lifecycle

元数据

  • 除了每次提交的内容之外,Git 仓库还包含其他重要的元数据,例如分支详细信息、配置设置和更改历史记录。

  • 这确保 Git 可以有效地检索和管理所有项目版本。

角色

  • Git 管理版本、跟踪更改以及提供版本控制所需功能的能力都依赖于 Git 仓库。

  • 它充当仓库的数据库,保存历史记录管理和版本跟踪所需的所有数据。

Git 生命周期中的 GitHub 集成

Git 在本地管理版本控制,但 GitHub 添加了更多阶段以进行远程存储和协作。

GitHub 以以下方式融入 Git 生命周期:

远程仓库

远程仓库是托管在服务器或云服务(如 GitHub、GitLab 或 BitBucket)上的项目的版本。它允许你与他人共享更改并协作处理项目。它作为 Web 项目的中央仓库。

多个用户可以使用远程仓库查看、访问和处理项目。

Git lifecycle

基本上,它是本地仓库的在线镜像。

推送更改

要将提交从本地仓库上传到远程仓库,请使用 `git push` 命令

$ git push

拉取更改

要使用远程仓库中的更改更新本地仓库,请使用 git pull 命令

$ git pull origin main

使用分支

分支是 Git 的一个重要功能,允许你独立处理不同的功能、修复或实验。本节探讨分支如何融入 Git 生命周期。

创建分支

要创建新分支,请使用 `git branch` 命令

$ git branch <branch-name>

此命令创建新分支,但不切换到该分支。要同时创建和切换到新分支,请使用:

$ git checkout -b <branch-name>

切换分支

要切换分支,请使用 `git checkout` 命令

$ git checkout <branch-name>

切换分支会将工作目录中的文件更新为与你正在切换到的分支的状态匹配,允许你同时处理不同的任务。

合并分支

合并是将一个分支的更改合并到另一个分支的过程。要合并更改,请切换到要合并到的分支,然后使用 `git merge` 命令

$ git checkout main
$ git merge <branch-name>

此命令将 <branch-name> 中的更改合并到主分支。如果存在冲突,Git 会通知你,你需要手动解决这些冲突。

删除分支

分支不再需要时,可以将其删除以保持仓库的组织性

$ git branch -d <branch-name>

此命令在本地删除分支。如果要从远程仓库删除分支,请使用:

$ git push origin --delete <branch-name>

管理 Git 生命周期最佳实践

遵循最佳实践可以帮助您最大限度地利用 Git 的功能,并维护一个干净、有序的代码库。

  • 经常提交,并写明清晰的提交信息 - 频繁进行小的提交,并使用清晰的提交信息描述更改。此实践有助于跟踪进度,更容易识别问题,并简化协作。

  • 策略性地使用分支 - 利用分支隔离不同功能、错误修复或实验的工作。这允许您并行工作而不会干扰主代码库。

  • 定期与远程仓库同步 - 通过定期拉取更改并推送您的提交,保持本地仓库与远程仓库同步。这确保每个人都在使用最新的代码,并有助于避免冲突。

  • 清理不必要的 Branches - 定期删除不再需要的分支,以保持代码库整洁并防止混淆。

理解 Git 生命周期对于有效管理您的代码和与他人协作至关重要。

广告