(三)Java工程化–Git起步

罪惡斯巴克發表於2018-08-26

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 `user@xxx.com` 設定使用者郵箱
  • ssh-keygen -t rsa -C `user@xxx.com` 生成ssh金鑰
  • 多使用者配置方法: 在.ssh路徑下(C:Usersxueli.ssh)建立檔案config, 新增下面內容

    # Default github user(usergithub@mail.com)
    Host github.com
    HostName github.com
    User git
    IdentityFile C:Usersxueli.sshid_rsa

# Default mygitlib user(second@mail.com)
Host mygitlib.com
HostName mygitlib.com
User git
IdentityFile C:Usersxueli.sshmygitlib

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


相關文章