跟踪更改SVN与Git


圈圈红
2025-03-14 01:21:57 (5天前)
  1. Lynda.com上观看有关分布式版本控制系统与集中版本控制系统的教程时,我遇到了一些让我对Git如何跟踪不同的文本感到困惑......

3 条回复
  1. 0# 关于贤的记忆 | 2019-08-31 10-32



    本教程非常错误:




    1. 混帐

      才不是

      存储变更集。混帐

      单位计算

      根据请求动态更改集。 (Git确实在包文件中进行增量压缩,但与Git的对象存储模型相比,包文件相当隐蔽,而Git的对象存储模型是通过哈希ID故意公开的。)


    2. 在讨论分布式与集中式时,这不是一个有用的区别。 (看到

      kan的回答

      同样。)

    3. </醇>


      以下是我在自己的书中关于分布式和集中式的说法:




      这两种系统之间的主要区别在于集中式VCS具有指定的主存储库。可能存在主设备的多个副本,或甚至具有某种同步协议的多个主设备(例如,ClearCase MultiSite),但是只有一个主设备。他们的设计

      假设

      这艘单船,因此可以依赖它。



      使用分布式VCS,没有指定的主存储库。用户通常拥有每个存储库的完整私有副本。这些私有副本之间的通信,至少在原则上是对等操作:两个存储库都不是更精通,并且冲突指示Alice和Bob都对相同文件的相同区域进行了更改。确实发生并需要某种解决方案。



      它始终可以以集中方式使用分布式VCS:您只需将一个特定存储库指定为主版本,并协调对其的更新。但是,集中式系统通常提供诸如锁定源文件或目录,限制访问(用于读取和/或写入,到特定文件,目录和/或分支)等功能,等等。对于典型的DVCS来说,提供这些功能并不困难(尽管技术上不可能),而Git和Mercurial只是简单地说,至少在没有附加功能的情况下。使用提供锁定的CVCS,用户可以锁定文件(通常只有一个特定的版本ID),以防止其他用户进行相互冲突的更改。这在概念上更容易,但当然它可以禁止并行工作。



  2. 1# 逆转的风 | 2019-08-31 10-32



    在CVCS中,更改是围绕单个中央存储库同步的。因此,提交更改用户在该存储库中为其他人创建单个版本。



    在DVCS中,每个用户都拥有自己的独立存储库副本,所有变更集(或提交)最初都在这里。使用fetch / push命令在其他用户存储库之间进行同步更改的单独过程。


登录 后才能参与评论