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

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

版本控制

版本控制記錄了一個或若干文件的歷史變化,便於從此查閱,恢復。git

三類版本控制系統

  1. 本地版本控制系統 RCS : 本地存儲文件變動系統,沒法協做及對權限作統一管理
  2. 集中化版本控制系統 CVCS : 變動存儲於集中的一臺服務器
  3. 分佈式版本控制系統 DVCS : 分佈式存儲版本庫鏡像, 包含文件歷史變動的全部信息

Git的歷史

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

設計目標算法

  • 速度
  • 簡單
  • 對非線性開發模式的強力支持(多個並行開發的分支)
  • 徹底分佈式
  • 適用超大規模項目

linux是開源的, 因此當他們以前使用的版本工具開始收費的適合,他們決定本身研發一個版本控制工具,即Git.服務器

提及開源, 咱們須要瞭解下常見的開源協議,以便咱們作技術選型時考慮.例如通常的開源協議都要求使用開源框架的項目也要開源.框架

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

  1. 直接記錄快照,而非差別比較ssh

    瞭解此項差別的底層實現方式很是重要,有利於咱們更準確的理解和學習Git.具體能夠參考文章開始的網站資料.(有圖有真相)
  2. 近乎全部操做都在本地執行(得益於第一點的底層實現,即分佈式存儲)
  3. Git使用sha1哈希算法算出的校驗和保證完整性分佈式

    Git的索引是校驗值而不是文件名,若是在傳送過程當中有信息丟失和損壞,Git就能發現.
  4. Git通常只添加數據 (只要提交便不會丟失數據,能夠執行可逆操做)svn

使用前的配置

  • git config --list 顯示全部配置
  • git config --global user.name 'user' 設置用戶名
  • git config --global user.email 'user@xxx.com' 設置用戶郵箱
  • ssh-keygen -t rsa -C 'user@xxx.com' 生成ssh密鑰
  • 多用戶配置方法: 在.ssh路徑下(C:\Users\xueli.ssh)建立文件config, 添加下面內容

    # Default github user(usergithub@mail.com)
    Host github.com
    HostName github.com
    User git
    IdentityFile C:\Users\xueli.ssh\id_rsa

# Default mygitlib user(second@mail.com)
Host mygitlib.com
HostName mygitlib.com
User git
IdentityFile C:\Users\xueli.ssh\mygitlib
工具

上面是Git起步和背景知識, 下次將學習Git經常使用命令.

相關文章
相關標籤/搜索