什么是裸 Git 仓库?
介绍
裸仓库与默认仓库相同,但不能在其中提交代码。裸仓库没有工作区,因此无法跟踪对项目的更改。所有项目文件/子目录都存储在工作区中。所有项目文件都存储在裸仓库内的特定文件夹中,基本上就是一个 .git 文件夹。
在本文中,我们将进一步探讨裸仓库。
什么是 Git 仓库
Git 仓库包含一系列文件和文件夹,用于跟踪代码库更改的历史记录。作为一名开发者,它对我非常有用,因为它维护了项目代码库的单一视图,备份了整个项目历史记录的副本,允许我快速检索整个代码库或单个文件的旧版本,调试代码,显示谁进行了哪些特定更改等等。开发团队发现它非常有用。
裸 Git 仓库:它们是什么
运行 `git init --bare` 会创建一个用于共享的裸仓库。裸仓库是一个团队所有成员都可以从中拉取更改的地方,以便与团队的其他成员共享,以便能够协作更改(如果您与开发团队合作,简单的解决方案通常是 GitHub)。Git 的分布式特性可防止任何人直接编辑共享的集中式仓库。作为替代方案,开发人员可以克隆共享的裸仓库,在本地进行更改,然后在他们对自己的工作副本进行更改后,将更改推回共享的裸仓库,以便其他人可以看到他们的更改。
不需要工作区,因为任何人都可以直接在共享的裸仓库中编辑文件。当用户将代码推送到仓库时,工作区只会导致冲突。裸仓库中没有工作区,这就是它们存在的原因。
为什么我们需要裸 Git 仓库
协作完成项目需要一个中央仓库,以便可以存储所有更改并防止每个人计算机上不同版本之间的冲突。通过拥有一个中央仓库,任何新的贡献者都可以将仓库克隆到本地仓库中,而无需安装未保存的更改或处理他人冲突的工作(简而言之,没有混乱)。中央仓库旨在类似于参考仓库。
最初,只有裸仓库可以用作远程仓库,这需要使用远程仓库作为中央仓库。最近,Git 已经改变了,允许中央仓库不是裸仓库,所以很多人不熟悉它。在裸仓库上,只有推送和克隆操作是可能的。
为什么只有裸仓库被用作同步任务的中央仓库
始终建议将中央仓库创建为裸仓库,因为将分支推送到非裸仓库可能会导致覆盖更改。当仓库被标记为 `--bare` 时,它被视为存储设施而不是开发环境。对于几乎所有 Git 工作流程,这意味着中央仓库将是裸仓库,而开发人员的本地仓库将不是裸仓库。
创建远程中央仓库是 `git init --bare` 最常见的应用。为了创建你的中央仓库,你首先需要通过 SSH 连接到包含它的服务器。之后,你导航到想要存储项目的位置。要创建中央存储仓库,请使用 `--bare` 标志。开发人员的开发机器上将通过克隆 `my-project.git` 创建 `my-project.git` 的本地副本。
裸 Git 仓库的优缺点
优点
可以使用分布式版本控制系统获得实际经验。
无需使用 Gitlab、Github 或任何其他第三方客户端即可使用你自己的远程 Git 仓库。
你不需要在第三方客户端上设置帐户。
对于小型远程团队来说,这是一个方便的解决方案。
缺点
维护远程服务器会带来额外的麻烦。
如果服务器丢失,所有文件都可能丢失。
我们将无法可视化存储在远程仓库中的文件。
结论
在本文中,我们详细探讨了 Git 中的裸仓库。我希望你已经理解了所有内容。