探索Git的复杂性:工作流程、不可变性和Merge VS Rebase

Git是如何工作的?

下面的图示展示了Git的工作流程。

Git是一种分布式版本控制系统。每个开发者都维护着主仓库的本地副本,对其进行编辑和提交。提交非常快,因为该操作不会与远程仓库进行交互。如果远程仓库崩溃,可以从本地仓库恢复文件。

Git工作流程和不可变性

这里的不可变性意味着一旦数据被写入Git,就不能被更改。修改只会创建新的数据版本,旧数据保持不变。

在需要高度可审计性的系统中,如金融系统和版本控制系统,通常使用不可变性的系统设计。以下是Git设计中如何使用它:

??用户的本地Git存储包含三个部分:工作副本、暂存区和本地仓库。

??工作副本包含您正在工作的文件。该数据是可变的,因此您可以随意处理它

??当您键入“git add”时,您的文件将被添加到暂存区。这些文件现在是不可变的。无法编辑它们

??当您键入“git commit”时,您的暂存文件将添加到本地仓库中。本地仓库是追加式写前日志(WAL)的树版本。它们都是不可变的:您只能向数据结构的末尾追加。

??当您键入“git push”时,您的本地仓库数据将与远程仓库同步。由于远程仓库使用与本地仓库相同的数据结构,因此它也是不可变的:只能向其中添加数据

Git合并与Git变基:有何区别?

当我们将一个Git分支中的更改合并到另一个分支时,我们可以使用“git merge”或“git rebase”两种命令。下面的图表显示了这两种命令的工作原理。

Git Merge

这将在主分支中创建一个新的提交G\\’,将主分支和特性分支的历史记录链接在一起。

Git合并是非破坏性的,即主分支和特性分支都没有更改。

Git Rebase

Git rebase将特性分支的历史记录移动到主分支的开头。它为特性分支中的每个提交创建新的提交E\\’,F\\’和G\\’。

重新定位的好处在于它具有线性提交历史

如果不遵循“git rebase的黄金法则”,重新定位可能是危险的。

Git Rebase的黄金法则:不要在公共分支上使用!

总结

本文介绍了Git的工作原理、不可变性以及Git合并和Git变基的区别。

首先,文章解释了Git是一种分布式版本控制系统,每个开发者都维护着主仓库的本地副本,对其进行编辑和提交。Git的不可变性是指一旦数据被写入Git,就不能被更改。在需要高度可审计性的系统中,如金融系统和版本控制系统,通常使用不可变性的系统设计。

其次,文章介绍了Git合并和Git变基的区别。Git合并是非破坏性的,即主分支和特性分支都没有更改。Git变基将特性分支的历史记录移动到主分支的开头,具有线性提交历史。文章提醒读者要注意Git Rebase的黄金法则:不要在公共分支上使用。

总的来说,本文对Git的工作原理和使用方法进行了简明扼要的介绍,对想要学习Git的读者来说是一篇很好的入门文章。

原创文章,作者:小技术君,如若转载,请注明出处:https://www.sudun.com/ask/34003.html

Like (0)
小技术君的头像小技术君
Previous 2024年4月18日
Next 2024年4月18日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注