Git的前世今生
一、Git是什麼?
Git是用來做版本控制的。Git是目前世界上最先進的分散式版本控制系統(沒有之一),當然把“分散式”三個字去掉也是成立的。
目前市場上的版本控制工具主要分為 集中式 的版本控制工具和 分散式 的版本控制工具兩種。
1.1、集中式版本控制
集中式的版本控制工具以SVN為代表,它有一箇中央伺服器控制著所有的版本管理,其他所有的終端可以對這個中央庫進行操作,中央庫保證版本的唯一性。
如果中央伺服器因為某種原因被毀,那麼整個專案的版本控制就完蛋了。
集中式版本控制的劣勢:
- 容災性差
- 通訊頻繁
1.2、分散式版本控制
分散式版本控制的典型就是Git,它的終端可以獲取到中央伺服器的完整資訊,可以在終端做各種操作,獲取各種資訊而不需要與伺服器通訊。就算伺服器出現問題被毀,各個終端依然有完整的備份,而且Git的各種操作可以全部發生在本地,只需要最終完成後提交伺服器即可,而不需要頻繁通訊。
1.3、Git核心思想
Git作為分散式的版本控制工具,其核心在於以下幾個方面:
- 分散式 。各個Repo都具有完整的映象,雖然在協作中通常會指定一臺中心伺服器,但分散式的思想是Git的第一個重要概念。
- 快照 。Git每次記錄的都是完整的Repo資訊,而不是每個版本之間的差異,這也是Git速度快的原因之一。
- 狀態區 。只有掌握了不同狀態區中的狀態,才能瞭解Git的核心思想。
- 分支 。分支是Git最重要的功能之一,利用好分支可以讓Git的使用如虎添翼。
二、Git的基本配置
檢視Git的版本
$ git --version git version 2.14.1.windows.1
檢視當前的Git配置資訊
$ git config --list core.symlinks=false core.autocrlf=true core.fscache=true color.diff=auto color.status=auto color.branch=auto ......
顯示所有專案通用的配置資訊
$ git config --list --global user.name=huangxiaolei [email protected] http.sslverify=false
通過指定的配置名來獲取單獨的配置資訊
$ git config user.name huangxiaolei
通過上面的指令可以檢視當前的Git配置。如果沒有對Git進行配置的話,需要先對Git的Global引數進行基本的配置後才能使用。
$ git config --global user.name huangxiaolei $ git config --global --add user.name huangxiaolei user.email [email protected]
刪除一個配置
$ git config --global --unset user.name huangxiaolei
顯示所有檔案
$ ll -a total 72 drwxr-xr-x 1 huangxiaolei 10490890 十月 15 11:04 ./ drwxr-xr-x 1 huangxiaolei 10490890 八月 27 17:27 ../ drwxr-xr-x 1 huangxiaolei 10490890 十月 15 11:12 .git/ -rw-r--r-- 1 huangxiaolei 1049089145 八月 28 17:50 .gitignore drwxr-xr-x 1 huangxiaolei 10490890 八月 27 17:29 .gradle/ drwxr-xr-x 1 huangxiaolei 10490890 十月 15 13:52 .idea/ drwxr-xr-x 1 huangxiaolei 10490890 九月6 14:35 app/ ......
在.git隱藏資料夾中的config檔案儲存了一個Git專案的所有配置資訊,而個人相關的配置資訊都儲存在Git的個人配置中。
給一些指令起一個簡稱或者別名(Alias)以取代原本比較複雜的指令。
$ git config --global alias.st status
通過上面的配置就可以使用st來取代status指令。
一個Git log的Alias。
$ git config --global alias.lg "log --color --graph--pretty=format:'%Cred%h%Creset%C(yellow)%d%Creset%s%Cgreen(%cr)%C(bold blue)<%an>%Creset'--abbrev-commit"
學海無涯苦作舟

Android成長錄.jpg