探索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

(0)
小技术君's avatar小技术君
上一篇 2024年4月18日 下午6:05
下一篇 2024年4月18日 下午6:07

相关推荐

  • Maven 多仓库和镜像配置

    因为之前maven配置的一直都是公司的私服仓库,今天 拉 JMH包发现拉不到,于是考虑配置多个仓库,可以满足工作以及日常开发需求,顺便梳理 mirrors 和&…

    CDN资讯 2024年4月5日
    0
  • 如何为您的网站设计安全的Web API访问?

    当我们向用户开放Web API访问时,我们需要确保每个API调用都经过身份验证。这意味着用户必须是其所声称的身份。 在本文中,我们探讨了两种常见的方式: 1.基于令牌的身份验证2.…

    CDN资讯 2024年4月13日
    0
  • 全球cdn加速,cdn加速 app

    想要让你的网站速度飞起来吗?全球CDN加速助你一臂之力!本文将深入探讨全球CDN加速的优势和应用,帮助你了解如何利用全球CDN加速服务提升网站速度,吸引更多用户,提升用户体验!

    2024年5月11日
    0
  • 为什么CDN可以加速?

    内容分发网络(CDN)作为一种广泛应用于互联网的技术,在提高网站和应用性能方面发挥着关键作用。本文将探讨CDN是如何实现加速的,并分析其背后的原理和关键技术。 1. 分布式缓存 C…

    2024年4月29日
    0

发表回复

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