天天看點

(三)Java工程化--Git起步

GIT學習參考: https://git-scm.com/book/zh/v2

版本控制

版本控制記錄了一個或若幹檔案的曆史變化,便于今後查閱,恢複。

三類版本控制系統

  1. 本地版本控制系統 RCS : 本地存儲檔案變更系統,無法協作及對權限做統一管理
  2. 集中化版本控制系統 CVCS : 變更存儲于集中的一台伺服器
  3. 分布式版本控制系統 DVCS : 分布式存儲版本庫鏡像, 包含檔案曆史變更的所有資訊

Git的曆史

git來自于linux團隊, 是linux為了解決之前版本管理工具Bitkeeper收費的問題研發出來的。

設計目标

  • 速度
  • 簡單
  • 對非線性開發模式的強力支援(多個并行開發的分支)
  • 完全分布式
  • 适用超大規模項目
linux是開源的, 是以當他們之前使用的版本工具開始收費的适合,他們決定自己研發一個版本控制工具,即Git.
說起開源, 我們需要了解下常見的開源協定,以便我們做技術選型時考慮.例如一般的開源協定都要求使用開源架構的項目也要開源.

Git與SVN(或者說其他版本控制系統)的差別

  1. 直接記錄快照,而非差異比較
    了解此項差異的底層實作方式非常重要,有利于我們更準确的了解和學習Git.具體可以參考文章開始的網站資料.(有圖有真相)           
  2. 近乎所有操作都在本地執行(得益于第一點的底層實作,即分布式存儲)
  3. Git使用sha1雜湊演算法算出的校驗和保證完整性
    Git的索引是校驗值而不是檔案名,如果在傳送過程中有資訊丢失和損壞,Git就能發現.           
  4. Git一般隻添加資料 (隻要送出便不會丢失資料,可以執行可逆操作)

使用前的配置

  • git config --list

    顯示所有配置
  • git config --global user.name 'user'

    設定使用者名
  • git config --global user.email '[email protected]'

    設定使用者郵箱
  • ssh-keygen -t rsa -C '[email protected]'

    生成ssh密鑰
  • 多使用者配置方法: 在.ssh路徑下(C:\Users\xueli.ssh)建立檔案config, 添加下面内容
    # Default github user([email protected])
    
    Host github.com
    
    HostName github.com
    
    User git
    
    IdentityFile C:\Users\xueli.ssh\id_rsa      

# Default mygitlib user([email protected])

Host mygitlib.com

HostName mygitlib.com

User git

IdentityFile C:\Users\xueli.ssh\mygitlib

上面是Git起步和背景知識, 下次将學習Git常用指令.