Git 1 什麼是版本控制系統(VCS)

2021-10-13 21:31:06 字數 1652 閱讀 4452

很多人認為 git 難以理解的第乙個門檻在於:所謂 的「git 是乙個分布式版本控制系統」這句話的具 體含義不夠清楚。其實分布式版本控制系統 (distributed version control system dvcs)這個定義並不難,不過一步一步來,我先 告訴你,什麼是版本控制系統(version control system - vcs)。

版本控制系統(vcs)最基本的功能是版本控 制。所謂版本控制,意思就是在檔案的修改歷 程中

保留修改歷史,讓你可以方便地撤銷之前 對檔案的修改操作。

最簡化的版本控制模型,是大多數主流文字編輯器 都有的「撤銷(undo)」功能:你本來想刪除一 個字元,卻在按刪除鍵之前不小心選中了全文,結 果一下子整篇文件都被刪光了,沒關係,按一下 「撤銷」(ctrl + z 或 ⌘ + z 或 u 等等,具體和你 的作業系統以及編輯器有關),刪掉的文字就都回 來了。這其實是文字編輯器幫你自動儲存了之前的 內容,當你按下「撤銷」的時候,它就幫你把內容 回退到上乙個狀態;同理,按一次是會退到上乙個 版本,按兩次就是回退到上上乙個版本。

寫程式的時候同樣也難免會遇到「寫錯」的情況, 所以程式的 vcs,當然也會需要版本控制功能,這 樣當你發現「昨天有一行**寫錯了」,你就不用 憑著記憶把那段**背出來,而只需要在 vcs 中 選擇撤回到昨天的那個版本。

vcs 和文字編輯器的撤銷功能比起來,有乙個很重 要的區別是:程式**的修改的生命週期非常長。 一次**的修改,在幾天後、幾個月後、幾年後都有可能需要被翻出來。如果依然採用「每次改動自 動儲存」的形式來保留修改歷史,將會導致改動歷 史非常頻繁和無章可循,這樣,歷史**的查詢、閱讀和回退就會很困難了。所以,和文字編輯器的 撤銷功能不同,vcs 儲存修改歷史,使用的是主動 提交改動的機制。

在你寫了一段完整的**(例如修復了乙個 bug) 之後,使用 commit 命令把改動和對改動的描述信 息提交,這次改動就被記錄到版本歷史中了。之後 如果你希望回退到這個版本,就可以從 vcs 的歷 史日誌中方便地找到它。

這樣,解決了同步的需求,多個人在不同的機器上 開發同乙個程式就成了可能。

版本控制、主動提交、**倉庫這三個要素,共同 構成了版本控制系統(vcs)的核心:開發團隊中 的每個人向**倉庫主動提交自己的改動和同步別人的改動,並在需要的時候檢視和操作歷史版本, 這就是版本控制系統。

最初的版本控制系統,是**式版本控制系統 (centralized vcs),也就是前面我講的這種。 git 是分布式的版本控制系統(distributed vcs),它和**式的區別我在下節說,現在先說 一下**式版本控制系統的工作模型。

假設你在乙個三人團隊,你們計畫開發乙個軟體或 者系統,並決定使用**式 vcs 來管理**。於 是:

這樣,乙個三人的團隊就成功做到了各自在自己的 電腦上開發同乙個專案,並且互不影響,就好像你 們三個人是在同一臺電腦上操作一樣。

這就是**式 vcs 最基本的工作模型。當然,實 際的開發工作並沒有簡單到這種程度,因為你時常 會需要處理**衝突、檢視版本歷史、回退**版 本等;另外,git 屬於分布式 vcs,它的概念也比 **式 vcs 要複雜一些。但這些概念你需要一步 步地理解和吸收,你現在只需要先知道**式 vcs 的這個基本工作模型,其他的內容我會在後面慢慢 地全部講清楚。

版本控制之GIT 1

root centos181001 cat etc centos release centos linux release 7.6.1810 core root centos181001 git git version git version 2.20.1 1.配置本地並安裝編譯工具和依賴包 mkd...

什麼是版本控制系統(VCS)?

因為最近準備開始使用git管理自己的專案,所以把在學習git的過程中看到的幫助文件 的一些經驗心得等內容整理下來,逐步形成自己的使用筆記,以便日後查閱。版本控制系統是一種記錄乙個或若干檔案內容變化,以便將來查閱特定版本修訂情況的系統。版本控制系統不僅可以應用於軟體源 的文字檔案,而且可以對任何型別的...

git版本控制系統

總結 1.初始化乙個git倉庫,使用 git init 命令 2.新增檔案到git倉庫分兩步 第一步,使用命令 git add file 注意,可反覆多次使用,新增多個檔案 第二步,使用命令 git commit 完成小結 1 head 指向的是當前版本,因此可以使用 git reset hard ...