Git版本控制系統VCS

Git版本控制系統VCS

一、版本控制系統基本情況說明

  版本控制是一種記錄一個或者若干個文件內容的變化,以便將來查閱特定版本修訂情況的系統

1、作用

  記錄文件的所有歷史變化

  隨時可回覆到任何一個歷史狀態

  多人協作開發或者修改

  錯誤恢復

  多功能的並行開發(分支功能、特性-合併操作)

2、分類

  本地版本控制系統(local VCS

  集中化的控制系統(Centralizes VCS

  分佈式的版本控制系統(Distributed VCS

3、基本概念

  repository——存放所有文件及歷史信息

  checkout ——取出或者切換到指定版本的文件

  version ——記錄表示一個版本(編號或者其他代碼),某個特定狀態下的資源

  tag ——記錄標識一個主要版本(1.0 2.0 3.0

4.三種版本控制系統細講

1)本地版本控制系統(LVCS)——本地完整倉庫(少用)

  RCS Revision Control System

  優點:簡單、很多系統中都有配置

    適合管理文本文件

  缺點:不支持網絡

    支持類型單一

    只適合管理少量文件、不支持基於項目的管理

2)集中式版本控制系統(CVCS )——服務器完整的倉庫

  CVS Concurrent Version System

  Subversion

  優點:適合多人團隊協作開發

    代碼集中話管理

  缺點:單點故障

    必須連網操作,無法單擊本地工作

3)分佈式版本控制系統(CVCS)——本地和服務器都有完整的倉庫

  Git

  Mercurial

  優點:適合多人團隊協作開發

    代碼集中化管理

    可以離線工作

    每個計算機都是一個完整倉庫


二、Git——一個分佈式的版本控制系統

1Git由來

  Git最初開發是爲了取代BitKeeper,由linus Torvalds開發,作爲linux內核代碼管理系統使用。

  Git 設計時考慮了很多方面,除了分佈式版本控制系統的優點外,還考慮了一下的設計目標,這些目標都成爲git的優點:

  速度、簡單的設計、對非線性開發模式的強烈支持(分支功能,允許上千個並行開發的分支)、完全分佈式、有能力管理類似linux內核一樣的強大規模項目。

2、爲什麼取名git

  I'm an egotistical bastard,and I name all my projects after myself.First'Linux',now'Git'. ——Linus Torvalds

3git原理——快照,而非保存區別。

1)快照,而非保存

  每一種版本控制系統都用一種辦法追蹤不同階段的文件的變化。

  別的:補丁(保存區別)

  Git :快照(鏈接)snapshot

2)幾乎所有的操作都是在本地執行

3)通過校驗和算法識別文件的變化

  Git 使用SHA-1算法對文件內容或者目錄結構進行hash運算,用得出的校驗值作爲識別變化的指紋。

4)多數操作據爲添加數據

4Git 原理——文件狀態及工作區域

  Git respository——最終確定的文件保存到倉庫,成爲一個新的版本,並且對他人可見

   Staging areaindex)——暫存已經修改的文件

  Working Directory——編輯、修改文件

三、Git安裝

  sudo apt-get updates

  sudo apt-get install git

四、Git基礎設置

1、設置用戶名

  git config –-global user.name “IterCast”

2、設置用戶郵箱

  git config –global user.email “[email protected]

  (用戶名和郵箱是提交代碼時的標識)

3、查看設置

  git config –list

4、可以通過以下命令獲取git幫助

  git help

  可以通過以下的命令獲取特定指令的幫助

  git help 特定指令

五、Git操作

(一)初始化一個新的Git倉庫

1、創建一個文件夾(或者使用已有的文件夾)

   mkdir git-Demo

2、在文件夾內初始化Git ,創建Git倉庫

  cd git-Demo

  git init (實際上就是在這個文件夾下面創建一個隱藏的文件夾.git,所有的git文件都保存在此)

(二)Git 倉庫中的文件添加及更新

  Git 工作區域: Working Directory——>Staging area(index)------>Git repository

1)新添加的文件

  hellogit.rbREADME

2)添加到Staging area

  git add hellogit.rb

  git add README

3)確定後,添加到Git repository

  git commit -m “init pro說明信息”

註釋:

  (1)git status 查看當前的倉庫狀態;git log查看倉庫日誌。

   (2)git commit -a -m “modify hellogit” 直接一起提交暫存文件。(不會自動提交未追蹤的文件)

    git commit -a -m “modify README”  

     (git status)

(三)刪除文件

1、刪除文件(從系統中刪除文件)

   rm README

2、從Git中刪除文件(Git不去追蹤這個文件)

  git rm README

3、提交操作

  git commit -m “delete README”

注:只是在當前版本中刪除,而歷史版本中還是存在的

(四)重命名文件

   hellogit.rb---------->helloworld.rb

  1git mv hellogit.rb helloworld.rb

   2git commit -m “rename hello.rb to helloworld.rb”

  注:重命名文件相當於執行下面三條命令

    1mv hellogit.rb helloworld.rb

    2git rm hellogit.rb

    3git add helloworld.rb

六、Git 遠程倉庫簡介

  Working Directory---->Staging area------->Git repository-----.git倉庫文件---->Git倉庫文件

1Git遠程倉庫——訪問協議

  LocalSSH Git HTTP/HTTPS

2、常用Git 倉庫實現

1)使用現有的Git網絡倉庫服務

   githubbitbucket

2)搭建自己的Git倉庫服務器件

聲明:本文是在觀看蘇勇老師在51CTO學院上面的Web開發-蘇勇老師Git 版本控制系統精講視頻課程整理而來,大家可以進行視頻觀看。在此謝過蘇勇老師!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章