標籤:

學習Git(一)起步

什麼是Git

在Git官網上找到這樣一段描述

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

重點是 version control system (VCS),翻譯過來也就是 版本控制系統。(Pycharm中有一個)

關於版本控制

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

(我的理解就是一個東西會有不同的版本,就像吃雞,常常更新,每更新一次就是一個新的版本,如果剛發行的版本出現毒圈不掉血,這個時候就需要版本回退。。版本控制系統就體現作用了)

版本控制系統又分為:本地版本控制系統、集中化的版本控制系統、分散式版本控制系統。

本地版本控制系統

集中化的版本控制系統

分散式版本控制系統

更多介紹可以來看 1.1 起步 - 關於版本控制

誰開發了 Git

2002 年,Linux 內核開源項目組開始啟用一個專有的分散式版本控制系統 BitKeeper 來管理和維護代碼。

但是到了 2005 年,開發 BitKeeper 的商業公司同 Linux 內核開源社區的合作關係結束,他們收回了 Linux 內核社區免費使用 BitKeeper 的權力。 這就迫使 Linux 開源社區(特別是 Linux 的締造者 Linus Torvalds)基於使用 BitKeeper 時的經驗教訓,開發出自己的版本系統。 他們對新的系統制訂了若干目標:

  • 速度
  • 簡單的設計
  • 對非線性開發模式的強力支持(允許成千上萬個並行開發的分支)
  • 完全分散式
  • 有能力高效管理類似 Linux 內核一樣的超大規模項目(速度和數據量)

Git 特點

Git 工作流

基本的 Git 工作流程如下:

  1. 克隆 Git 資源作為工作目錄。
  2. 在克隆的資源上添加或修改文件。
  3. 如果其他人修改了,你可以更新資源。
  4. 在提交前查看修改。
  5. 提交修改。
  6. 在修改完成後,如果發現錯誤,可以撤回提交並再次修改並提交。

近乎所有操作都是本地執行

Git 中的絕大多數操作都只需要訪問本地文件和資源,一般不需要來自網路上其它計算機的信息。

舉個例子,要瀏覽項目的歷史,Git 不需外連到伺服器去獲取歷史,然後再顯示出來——它只需直接從本地資料庫中讀取。 你能立即看到項目歷史。 如果你想查看當前版本與一個月前的版本之間引入的修改,Git 會查找到一個月前的文件做一次本地的差異計算,而不是由遠程伺服器處理或從遠程伺服器拉回舊版本文件再來本地處理。

Git 保證完整性

Git 中所有數據在存儲前都計算校驗和,然後以校驗和來引用。 這意味著不可能在 Git 不知情時更改任何文件內容或目錄內容。 這個功能建構在 Git 底層,是構成 Git 哲學不可或缺的部分。 若你在傳送過程中丟失信息或損壞文件,Git 就能發現。

Git 用以計算校驗和的機制叫做 SHA-1 散列(hash,哈希)。 這是一個由 40 個十六進位字元(0-9 和 a-f)組成字元串,基於 Git 中文件的內容或目錄結構計算出來。 SHA-1 哈希看起來是這樣:

24b9da6552252987aa493b52f8696cd6d3b00373

Git 中使用這種哈希值的情況很多,你將經常看到這種哈希值。 實際上,Git 資料庫中保存的信息都是以文件內容的哈希值來索引,而不是文件名。

Git 一般只添加數據

你執行的 Git 操作,幾乎只往 Git 資料庫中增加數據。 很難讓 Git 執行任何不可逆操作,或者讓它以任何方式清除數據。 同別的 VCS 一樣,未提交更新時有可能丟失或弄亂修改的內容;但是一旦你提交快照到 Git 中,就難以再丟失數據,特別是如果你定期的推送資料庫到其它倉庫的話。

Git 的三種狀態

  1. 已提交(committed):數據已經安全的保存在本地資料庫中。
  2. 已修改(modified) :修改了文件,但還沒保存到資料庫中。
  3. 已暫存(staged) :對一個已修改文件的當前版本做了標記,使之包含在下次提交的快照中。

由此引入 Git 項目的三個工作區域的概念:Git 倉庫、工作目錄以及暫存區域。

安裝 Git

說了那麼多,現在開始動手,安裝Git。

Linux

$ sudo yum install git

或者

$ sudo apt-get install git

Mac

下載安裝包 Downloading Git

或者

$ brew install git

Windows

直接下載文件 Downloading Git

或者

安裝 GitHub for Windows

初次運行 Git 前的配置

用戶信息

$ git config --global user.name "name"$ git config --global user.email example@example.com

如果使用了 --global 選項,那麼該命令只需要運行一次,因為之後無論你在該系統上做任何事情, Git 都會使用那些信息。

檢查配置信息

$ git config --listuser.name=nameuser.email=example@example.comcolor.status=autocolor.branch=autocolor.interactive=autocolor.diff=auto...

獲取幫助

若你使用 Git 時需要獲取幫助,有三種方法可以找到 Git 命令的使用手冊:

$ git help <verb>$ git <verb> --help$ man git-<verb>

例如,要想獲得 config 命令的手冊,執行

$ git help config

總結

以前只是了解 Git常見的push、commit等命令,從沒有對 Git進性過系統學習,抓緊時間學習。

目標:兩周後,也就是3月28日,能熟練使用 Git進性開發。

這一篇主要講了些背景知識吧,下一篇就是實際的操作了。

主要從Git文檔上截取自己認為重要的部分,有條件可以去仔細閱讀。

歡迎來公眾號(zhangslob)與我交流

推薦閱讀:

IDE 有必要集成 Git 嗎?
從0開始學習 GitHub 系列之「Git 進階」
Git算不算程序員的必備技能?
Git 工作流指南

TAG:Git | 編程 | 學習 |