<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 分布式版本控制系統如何工作? > 原文: [https://howtodoinjava.com/vcs/how-distributed-version-control-system-works/](https://howtodoinjava.com/vcs/how-distributed-version-control-system-works/) 在上一篇文章中,我們對[集中式版本控制系統](//howtodoinjava.com/2015/07/16/how-version-control-system-vcs-works/)進行了介紹。 在這篇文章中,我將向您介紹“**分布式版本控制系統**”。 與集中式 VCS 不同,在集中式 VCS 中,所有繁重的工作都在服務器端完成,并作為所有操作的單點操作,而客戶端僅擁有代碼庫的工作副本。 在分布式 VCS 中,每個客戶端(稱為**協作者**)都有自己的本地倉庫,大部分將在其本地倉庫上工作。 ## 分布式版本控制系統如何工作? 顛倒中央 VCS 的整個方法,**每個協作者將在其本地計算機上擁有完整的倉庫,即完整的修訂歷史記錄,所有分支,標簽,提交信息都存在于本地計算機**上。 我們沒有中央服務器的概念,但是我們可以將任何倉庫配置為中央倉庫,以將其視為真相來源并與 [**Jenkins**](https://jenkins-ci.org/),[**Chef**](https://www.chef.io/) 之類的構建和部署工具集成。 下面是不同協作者如何與分布式版本控制系統一起工作的框圖。 ![Distributed VCS](https://img.kancloud.cn/24/a8/24a886230f75158ea9640a79ac256783_580x463.png) 分布式 VCS 從上圖可以看出,與傳統的 VCS 不同,在分布式 VCS 中,我們的協作者在分散式系統中與其他協作者一起工作。 在分布式 VCS 中,客戶不僅僅簽出文件的最新快照,還需要查看文件的最新快照。 而是完全鏡像倉庫。 因此,如果有任何服務器故障,并且這些系統通過它進行協作,則可以將任何客戶端存??儲庫復制回服務器以恢復該服務器。 每個克隆實際上都是所有數據的完整備份。 另請注意,分布式 VCS 中使用的術語不同于集中式 VCS。 我們在中央 VCS 中使用“檢出”和“提交”的地方; 在分布式 VCS 中,我們使用“推”和“拉”。 1. **推送**:將更改發送到另一個倉庫(可能需要許可) 2. **拉取**:從倉庫中獲取更改 有很多分布式版本控制系統,例如 [**Git**](https://git-scm.com/) , [**Mercurial**](https://mercurial.selenic.com/) 等。在即將發布的系列文章中,我將介紹 Git 并將 每當提到“分布式版本控制系統”時,都指的是 Git。 ## 分布式版本控制系統的優點 讓我們看看這種方法相對于傳統/集中版本控制系統的優勢。 #### 快速 每個協作者都將代碼庫簽出到其本地倉庫中并在本地倉庫上工作。 因此,由于不會有網絡呼叫任何服務器,因此所有操作將很快進行。 #### 低成本的分支和合并 由于代碼庫位于本地硬盤上,因此創建分支和合并非常簡單容易。 這是強大的功能之一,因為如果使用集中式倉庫,則使用分支和合并太復雜了。 #### 本地分支 開發人員可以創建盡可能多的本地分支并在分支上工作,然后將其合并回主分支。 合并完成后,可以安全地刪除本地分支。 此處最大的優勢是,與集中式 VCS 不同,該分支對其他人將不可見,在集中式 VCS 中,所有分支都駐留在一臺服務器上,并且在處理大型項目時會造成很多混亂。 #### 快照而不是差異 這是主要好處之一。 我們可以為執行的每個提交獲取完整的代碼倉庫。 因此,與中央 VCS 一樣,我們可以輕松地恢復到任何提交,而無需手動應用來自基本版本的更改。 #### 簡單而高效的工具 一旦開發人員對核心概念和功能了如指掌,開發人員將變得更有生產力。 開發人員還可以采用模塊化方式提交代碼,并與其他開發人員進行協作,而不會影響其他開發人員的工作區。 #### 可擴展 與“集中式 VCS”相比,“分布式 VCS”具有高度可擴展性,尤其是在開源項目中,該項目中數百萬開發人員做出了貢獻,而傳統的版本控制系統無法完成這項任務。 #### 開源 Git 是開源的,免費的。 此外,開發人員可以在各種平臺(如 Github)上從事開源項目。 ## 分布式版本控制系統的缺點 現在,讓我們看看分布式版本控制系統的一些缺點。 #### 陡峭的學習曲線 學習 Git 將經歷一些陡峭的學習過程,并且對于來自其他傳統 VCS 工具的開發人員而言,通常會感到困惑和沮喪。 但是,一旦理解了核心概念,就可以與之合作。 #### 支持工具和 IDE 盡管有很多工具和插件可以與 IDE 集成,但與 SVN 或 perforce 相比,它們并不多。 雖然 git bash 是一種流行的工具,如果它來自 unix 背景,可以利用。 在下一篇文章中,讓我們進一步了解 Git 基礎知識。 **關于作者**: 以上文章由該博客的其中一位讀者 Pradeep Kumar([**@pradeepkumarl**](https://twitter.com/pradeepkumarl))提供。 他是一位擁有 10 多年經驗的軟件開發人員,并且曾使用過各種版本控制工具,例如 SVN,Perforce,ClearCase 和 Git。 他對技術充滿熱情,并熱愛教技術。 您可以在 [**Git – 新手到專家**](http://prashdeep.usefedora.com)上查看他的在線課程之一。 **祝您學習愉快!**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看