我是GIT的新手,一直在努力了解它所基于的基本原理。这让我想到了分布式程序的概念。
为了让外行理解,我将尝试保持查询简单,保持以下内容 - 基于Web的分布式Porgram,例如GIT(我的理解是GIT是一个分发程序,如果有其他适当的例子,则是正确的)< / p>
我对分布式程序的基本了解是 - 它至少有两个节点,REMOTE和LOCAL。每个节点都具有与基础相同的父副本。如果GIT副本是CODE。
本地副本是我在计算机上的副本,而REMOTE是另一台计算机上网络上的其他地方。我的疑问基于这种理解:
请分享您的见解,并帮助纠正上述理解。
谢谢, 阿南德
答案 0 :(得分:0)
您的问题的答案:
答案 1 :(得分:0)
git是一个分布式源代码管理工具。为了理解在此上下文中分发的内容意味着将其与非分布式比较有帮助,例如。颠覆。
在subversion中有一个权威的中央存储库。如果您签出存储库,您只能获得一份工作副本(例如最新版本),但不会获得完整的历史记录,如果中央存储库已关闭,则无法提交其他版本。
相比之下,git至少从技术角度来看 - 没有中央存储库。因此,当您在git中签出存储库时,您将克隆完整的历史记录,并将所有内容提交到本地存储库。然后,您可以从其他存储库中提取和/或推送提交,以便同步更改并协同工作。
虽然通常情况下你在中心&#34;中有一个权威分支。存储库(例如,项目的公共GitHub存储库上的主分支),其中所需的更改将被合并,这只是适用于许多项目的常见做法。如果您有这样一个git存储库,那么您的原始数据库将会是#34;存储库(您初始化并添加第一个提交的位置)不必一直在线。另一方面,如果GitHub发生故障,每个节点都可以充当集线器,因为它具有或多或少完整的项目历史记录。
旁注:如果您将代码分支并提交到那些分支,那么&#34;原始&#34;代码与远程存储库分歧和相同。 GitHub和其他服务因此调用复制存储库分叉。
我建议Pro Git Book进一步阅读有关该主题的内容。如果您有时间,也可以查看Linus Torvalds on git。