鱼C论坛

 找回密码
 立即注册
查看: 1306|回复: 7

[已解决]Git为什么要设置暂存区

[复制链接]
头像被屏蔽
发表于 2023-5-23 21:30:59 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-23 21:43:15 | 显示全部楼层
Git设置暂存区主要是为了提供更灵活的版本控制体验。这里我会解释一些关键原因:

1. 选择性提交:在实际的开发过程中,你可能会在多个文件或者多个部分进行更改,但并不是所有的更改都准备好提交。暂存区的设计让你可以选择性地添加或提交你的更改。也就是说,你可以把更改分成多个部分提交,而不是一次性提交所有的更改。

2. 更改的检查和确认:暂存区允许你在提交更改之前再次查看你的更改。你可以通过 git diff --cached 命令来查看你已经暂存的更改。这样,你可以在提交之前检查并确认你的更改,防止错误的或者不完整的提交。

3. 性能优化:就像你从知乎上看到的那样,暂存区也有助于提高Git的性能。由于暂存区保存了文件的状态,所以Git可以迅速地找出那些修改过的文件,而无需扫描整个工作目录。这就可以大大提高Git的运行速度,特别是对于大型项目来说。

至于你的担心,Git是否会占用很多内存,这主要取决于你的项目的大小。在大多数情况下,Git是非常高效的,占用的内存相对较小。然而,如果你正在处理非常大的项目,那么Git可能会占用较多的内存。在这种情况下,你可能需要考虑使用一些高级的Git功能,比如sparse checkout或者shallow clone,来减少内存使用。

总的来说,Git的暂存区提供了一种灵活、高效的方式来管理你的代码更改,帮助你更好地进行版本控制。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2023-5-23 21:52:03 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-23 22:03:58 | 显示全部楼层    本楼为最佳答案   
boluobenbo 发表于 2023-5-23 21:52
谢谢你的详细回复。关于前两条:
1. 选择性提交:在实际的开发过程中,你可能会在多个文件或者多个部分 ...

你的观点是正确的,实际上可以设计一个版本控制系统,不需要设置暂存区,也能完成类似的功能。在Git之外的其他一些版本控制系统(比如SVN)就是这样的。然而,Git的设计者选择了添加一个暂存区,并且这个设计有一些特殊的优势。

1. 选择性提交:尽管在提交时可以进行选择性提交,但是这将使提交过程变得复杂。Git通过添加暂存区,使得选择性提交的过程更加清晰和直观。在提交之前,你可以清楚地看到哪些更改会被提交,而哪些更改不会。

2. 更改的检查和确认:在没有暂存区的系统中,你可以对比工作区和代码仓库的代码,但是这可能会使得对比过程变得复杂,尤其是当你同时在多个文件中进行了更改时。通过使用暂存区,你可以更容易地检查和确认你的更改。

再者,暂存区还有助于处理合并冲突。当你在解决合并冲突时,你可以将解决冲突的文件添加到暂存区,这样你就可以清晰地看到哪些冲突已经被解决,而哪些还没有。如果没有暂存区,这个过程可能会更加复杂。

以上所述,暂存区是一个设计选择,可以使得版本控制更加灵活和清晰。这不是说没有暂存区的版本控制系统就是不好的,只是它们可能需要使用不同的方式来处理类似的问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2023-5-23 22:25:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-23 22:31:13 | 显示全部楼层
boluobenbo 发表于 2023-5-23 22:25
谢谢详细耐心的解答。我还没真正用过Git,很多缓存区的优势还没有切身体会。等用起来以后可能会有更深的 ...

免费的有小甲鱼老师的 git 教程:
https://fishc.com.cn/forum-334-1.html
https://www.bilibili.com/video/av27780400?share_source=copy_web


收费的可以看极客时间的:
http://gk.link/a/12446

我只看过这些 git 教程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

头像被屏蔽
 楼主| 发表于 2023-5-23 23:07:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
 楼主| 发表于 2023-5-23 23:08:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 03:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表