使用 Git 浏览版本控制
创作时间:
作者:
@小白创作中心
使用 Git 浏览版本控制
引用
1
来源
1.
https://learn.microsoft.com/zh-cn/training/modules/develop-with-devops/3-explore-version-control-using-git
在现代软件开发中,版本控制系统是必不可少的工具。Git作为目前最流行的分布式版本控制系统,其重要性不言而喻。本文将介绍Git的基本概念、术语以及它与GitHub的关系,帮助开发者更好地理解和使用Git。
集中式版本控制与分布式版本控制
集中式版本控制系统(CVCS)和分布式版本控制系统(DVCS)都能够管理和跟踪软件开发项目中的更改。它们之间的主要区别与实现存储库和协作的方式有关。尤其是:
- 存储库位置:在集中式系统中,存储库有一个集中实例,其中包含项目的完整历史记录。在分布式系统中,每个团队成员通常都有一个功能齐全的整个存储库的本地副本,这可能包括其完整版本历史记录。
- 网络连接:在集中式系统中,需要访问存储库的集中式实例来执行许多操作,包括更新和历史记录检索。在分布式系统中,可以针对存储库的本地副本执行所有活动。
- 协作模型:在集中式系统中,开发人员先从存储库的集中实例签出文件,同时通过网络连接到存储库,然后再进行修改并提交更改。这样可以防止其他人对已签出的文件进行更改。在分布式系统中,开发人员对其本地存储库副本进行更改,稍后会将其与其他副本同步。
- 分支和合并模型:在集中式系统中,分支和合并通常需要与他人协调。在分布式系统中,可以在本地副本中独立创建分支,之后合并。
值得注意的是,虽然分布式模型不依赖于拥有中央存储库(从传统意义上说),但通常实现存储库的一个副本,该副本由GitHub、GitLab或Bitbucket等服务托管。此实例充当协作和同步的焦点。
Git 术语
为了熟练地使用Git,必须熟悉其术语。Git特有的一些概念,将其与其他DVCS区分开来。最基本的Git术语包括:
- 工作树:包含所有项目的文件的目录结构。
- 存储库(通常称为存储库):位于工作树顶层的目录,托管项目的所有文件以及这些文件的版本历史记录。
- 克隆:在本地计算机上创建远程存储库的副本,以便对你有权访问的项目进行工作。
- 派生库:在GitHub上创建远程存储库的副本,以便处理你无权直接访问的项目。如果你打算为其他人的项目做出贡献或创建自己的此类项目版本,则通常使用分叉。虽然对原始存储库没有写入访问权限,但可以完全管理分支。
- 提交:在特定时间点对存储库中的文件所做的更改的快照。提交用于记录和保存更改。
- 暂存区域是一种中间位置(不属于存储库),用于在提交前准备工作树中文件的更改。它允许开发人员选择要提交的更改。
- Branch:一系列已命名的关联提交。简单而言,分支表示项目的不同版本。这样就可以同时处理项目的不同部分,而不会影响其主版本。分支中最近的提交称为头。初始化存储库时自动生成的默认分支称为main或master。
- 合并:将更改从一个分支(或提交)合并到另一个分支的过程。这会将更改从一个分支集成到另一个分支中。
- 对象:存储库中可用的四种类型的实体之一。这些实体包括:表示单个文件的blob,表示工作树的树,表示工作树特定版本的提交,以及表示分配给单个提交的一个标签的 *标签。
- 哈希:自动生成的唯一固定长度标识符,表示对象的内容。每当该对象发生更改时,其哈希也会更改。这允许Git确定存储库中的内容已更新。
- 远程:对另一个存储库(本地存储库以外的存储库)的引用,通常指向存储库的服务托管实例。这作为推送和拉取操作的默认值。
- 拉取:从远程存储库获取更改并将其合并到当前分支中。
- 推送:将本地提交发送到远程存储库的操作,并使用本地所做的更改对其进行更新。
- 提取:操作从远程存储库检索更改,而无需自动合并这些更改。这允许在应用合并之前进行审核。
- 拉取请求:基于Git的托管平台(如GitHub)中的一项功能,允许开发人员提出更改并请求将其合并到目标分支中。
Git还有一组广泛的命令,通过Linux Bash或Windows命令提示符等命令行界面完全实现和管理版本控制。或者,可以通过桌面应用程序(如GitHub Desktop)管理Git。基于Git的托管平台提供了一个Web界面,可促进与服务端存储库的交互。
Git 与 GitHub
如前所述,Git是一种多平台开源DVCS,它通过使用本地存储库促进协作,该存储库可与远程存储库同步。GitHub是一种基于云的服务,提供Git存储库的托管平台。它通过包括对以下项的支持来扩展Git功能范围:
- 远程存储库:促进分布式团队之间的交互。
- 协作工具:提供问题、讨论、拉取请求、通知、标签、操作、派生、wiki和项目等功能。
- 基于Web的接口:最大程度地减少使用Git命令的需求
- 分支保护:强制满足合并前必须满足的条件(例如,完成拉取请求评审)。
热门推荐
贵阳百年糕粑稀饭:从宫廷御厨到街头小吃的传奇故事
如何更改电脑密码?让黑客无机可乘!
中药材芦荟的功效与应用
喝苹果醋能减肥吗?什么时候喝效果最好?
上海市社保如何补缴:法律依据、操作流程及注意事项
盘点历史上8次重大金融危机及其影响
卡内基梅隆大学录取条件及计算机科学系学位项目详解
“数说乡村新图景”——见证中国乡村点滴变迁
显存大小和带宽:影响显卡性能的关键因素
孕早期B超预产期怎么算
空间结构如何影响心理恢复?一种基于图神经网络和街景图像的方法
3DMax新手教程:从零开始制作欧式餐桌和茶几
瞰世界 | 飞阅贝尔格莱德
借款利率怎么算?网贷逾期找不到平台怎么办?
关羽身世揭秘:爷爷是个高人,父母因他而死!
减肥期间能喝牛奶之类的吗
四季开花藤本植物:从观赏到实用的园艺选择
南方室外种什么花四季常开
电动车怎么考驾照,考驾驶证的流程、费用、年龄限制,一次说清楚
去寺庙还愿的规矩-去寺庙还愿的规矩有哪些
脚被烫伤最快的恢复办法
如何追踪和评估目标进度
团队招新完全指南:从目标设定到效果评估
全球火力指数(GFI):军事力量评估数据集详解
越南盾面额大全:纸币与硬币面值详解
红点奖作品分析:探索多元化文化在设计中的表达和融合
打印机故障大全及处理方法 学会不求人
孔雀鱼跳缸的主要原因与解决方案,养鱼新手必看!
特色产业多元发展——阿克苏第二届苹果文化旅游采摘季盛大开幕
提升培训效果的六大维度