一篇文章帶你了解熱門版本控制系統——Git

一篇文章帶你了解熱門版本控制系統——Git這篇文章會介紹到關于版本控制的相關知識以及版本控制神器Git
我們可能在生活中經常會使用GitHub網頁去查詢一些開源的資源或者項目 , GitHub就是基于Git而產生的平臺
接下來讓我們來細細道來~

Git是一門非常簡單的技術,但在實際開發中占有很重要的地位,請務必了解掌握
版本控制在介紹Git之前我們先來介紹一個名詞:版本控制
版本控制概念我們在標題已經提到了Git的最大作用:版本控制
那么我們先來了解一下版本控制:
  • 版本控制是指對軟件開發過程中各種程序代碼、配置文件及說明文檔等文件變更的管理,是軟件配置管理的核心思想之一 。
通俗來說的話:
  • 版本控制用于在開發的過程中管理我們的文件
  • 我們可以查看文件、目錄或工程等內容的修改歷史,方便查看更改歷史記錄,備份以便恢復以前的版本 。
例如我們所使用的產品有Version,版本常分為1.0,2.0...版本區分
但是我們所淘汰掉的版本是不會被直接拋棄刪除,而是被像Git這樣的軟件所保存傳送到相關倉庫中
又或者我們的軟件開發之后,會由許多人進行開發修改
但是并非所有人的開發版本都會被保留使用,那些被淘汰的版本就會被像Git這樣的軟件所保存傳送到相關倉庫中
版本控制的優勢:
  • 實現跨區域多人協同開發
  • 追蹤和記載一個或者多個文件的歷史記錄
  • 組織和保護你的源代碼和文檔
  • 統計工作量
  • 并行開發、提高開發效率
  • 跟蹤記錄整個軟件的開發過程
  • 減輕開發人員的負擔 , 節省時間,同時降低人為錯誤
總而言之版本控制在我們的實際開發中占有很重要的地位!
多人開發就必須要使用版本控制,否則無法控制項目的開發狀態
版本控制工具我們目前常用的控制工具大致分為五種:
  • Git
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Server)
其中SVN屬于版本控制的老大哥,但目前大部分公司已經不再使用
我們目前學的Git就屬于版本控制的主流工具,基本上大部分公司都在使用Git工具
版本控制分類我們通常將版本控制分為三類:
  1. 本地版本控制
  • 概念:
本地版本控制通常用于個人開發,我們將我們自己的項目進行版本控制 , 在迭代后將原版本的項目原件保留下來
記錄文件每次的更新,可以對每個版本做一個快照,或是記錄補丁文件 , 如RCS 。
  • 優缺點:
只能用于個人開發,多人開發在多臺計算機上,本地版本控制無法滿足
  1. **集中版本控制 **
  • 概念:
集中版本控制通常用于團隊開發,將一個電腦作為主機,將所有需要保存的項目資料都存放在該電腦上 , 實現集中控制
協同開發者從服務器上同步更新或上傳自己的修改,如SVN
  • 優缺點:
集中版本控制將所有資料保存在一臺電腦上,相當于單機存儲,保密性較高;但一旦計算機出現損壞,項目備份丟失 , 無法找回
  1. 分布式版本控制
  • 概念:
分布式版本控制通常用于團隊開發,所有人都保存有項目的所有資料,實現分布式控制
  • 優缺點:
保密性差,所有人都攜帶項目源碼,具有一定安全隱患;但同時所有人都保存有源碼,一臺電腦損壞并不影響項目的保存
Git和SVN的主要區別我們在前面提及到了集中版本控制和分布式版本控制,實際上它們就分別對應著SVN和Git的控制方式
因而我們給出相關總結:
  • 數據存放地址:SVN存放在一臺計算機;Git存放在所有計算機
  • 項目開發方式:SVN需要聯網獲得主機上的項目,然后開發完后推送回原電腦;Git直接開發并比對研究即可
  • 優缺點:SVN安全性低但容易丟失;Git不易丟失但安全性差
Git環境配置首先我們來講解Git的安裝以及環境配置等信息
Linux常用指令在正式開始Git教學之前,我們來復習一些Linux相關指令:
# 表示注釋cd : 改變目錄 。cd . . : 回退到上一個目錄,直接cd進入默認目錄pwd : 顯示當前所在的目錄路徑 。ls(ll) :都是列出當前目錄中的所有文件,只不過ll(兩個ll)列出的內容更為詳細 。touch : 新建一個文件 如 touch index.js 就會在當前目錄下新建一個index.js文件 。rm:刪除一個文件, rm index.js 就會把index.js文件刪除 。mkdir :新建一個目錄,就是新建一個文件夾 。rm -r :刪除一個文件夾, rm -r src 刪除src目錄mv : 移動文件, mv index.html src index.html 是我們要移動的文件, src 是目標文件夾,reset : 重新初始化終端/清屏 。clear : 清屏 。history : 查看命令歷史 。help : 幫助 。exit : 退出 。

推薦閱讀