在開始使用Git時,重要的是要對其進行配置,這樣它在特定的環境裏才能正常工做。咱們還可以以喜歡的方式管理內容以及與Git交互git
Git命令行的廣泛應用形式。一般以下:緩存
git <git-options> <command> <command-options> <operands>函數
下表描述了這一形式的不一樣部分fetch
元素 | 描述 | 示例 | 備註 |
git | 運行git的命令 | git | |
<git-options> | Git自己的全局選項,這些選項也能夠指定要執行的函數 | git --worktreeurl git --versionspa |
這些選項中的一些可能旨在用於獨立操做(git --version),而其它一些會修改其餘命令所使用過的值(git --worktree) |
<command> | 要執行的Git命令 | git --push | |
<command-options> | 對於所指定命令的選項 | git commit -m "comment" | 若是未指定可能會使用默認選項,選項也可能具備可被選擇以便進一步限定該選項的值 |
<operands> | 命令要操做的操做數 | git add *.c | 特定於要執行的命令;示例包括工做目錄中的文件,倉庫中的分支或SHA1,或者特定的設置或值 |
Git能夠採用不一樣類型的操做數,他們就是要進行操做的對象的規範。在沒有指定操做數時,命令會針對它在倉庫、暫存區域或工做目錄樹範圍中找到的全部合格項來進行操做。命令行
高層命令是爲了面向用戶,它們更常被使用以及更加便利,一般會提供較高級別的功能。底層命令會在較低級別發揮做用,也並不打算讓普通用戶使用。可使用高層命令或底層命令來完成Git中的某些職能。不過,一般須要幾個具體的底層命令才能完成一個高層命令所執 行的任務日誌
下表列出了Git中可用的高層命令regexp
命令 | 目的 |
add | 將文件內容添加到索引 |
bisect | 經過二進制搜索來查找涉及缺陷的變動 |
branch | 列示、建立或刪除分支 |
checkout | 切換分支或恢復工做樹文件 |
cherry | 找出有待應用到上游的提交 |
cherry-pick | 應用已有提交所涉及的一些變動 |
clone | 將倉庫克隆到新目錄 |
commit | 將變動記錄到倉庫 |
config | 獲取以及設置倉庫或全局選項 |
diff | 顯示提交之間、提交與工做樹之間等的變動 |
fetch | 下載來自另外一個倉庫的對象和引用 |
grep | 打印匹配一個模式的行 |
help | 顯示幫助信息 |
log | 顯示提交日誌 |
merge | 將兩個或多個開發歷史合併到一塊兒 |
mv | 移動或重命名一個文件,目錄或符號鏈接 |
pull | 從另外一個倉庫或本地分支進行抓取或集成 |
push | 更新遠程引用以及相關的對象 |
rebase | 將本地提交轉發到更新的上游頭信息 |
reset | 將當前head從新設置爲指定狀態 |
revert | 還原一些已有的提交 |
rm | 從工做樹和索引中移除文件 |
show | 顯示各類類型的對象 |
status | 顯示工做樹狀態 |
submodule | 初始化、更新或檢查子模塊 |
subtree | 合併子樹而且將倉庫劃分爲子樹 |
tag | 建立、列示、刪除或驗證標記對象 |
worktree | 管理多個工做樹 |
關於底層命令的列出此處略去對象
提供給Git或者Git命令的參數能夠被縮寫成單個字母或者完整拼寫成單詞。這裏要重要提的一點是,若是參數被完整拼寫,就必須在前面使用兩個連字符,好比--global。若是參數是縮寫的,那麼只須要一個連字符,好比-a。
當開始輸入一個命令或者爲一個命令輸入參數時,Git提供了一項有幫助的自動完成特性,它能夠完成兩件事情
下面是兩個示例。第一個是命令的示例。若是輸入git c,而後按下Tab鍵,不會發生任何事情,由於存在多個以c開頭的命令。
若是再次按下Tab鍵,Git會幫助顯示全部以c開頭的命令。在這種狀況下,它還會向上滾動該列表而且讓你處於能夠繼續輸入所選命令的提示符處
下面是另外一個例子,其中要使用更多的字母來縮小可用的命令範圍
提示:
在嘗試爲一個選項使用自動完成時,要確保已經用雙連字符(--)語法做爲該選項的開頭,而不是僅僅使用單個連字符
爲了設置Git中的配置值,要使用config命令,下面是其語法:
git config [<file-option>] [type] [--show-origin] [-z|--null] name [value [value-regex]]
git config [<file-option>] [type] --add name value
git config [<file-option>] [type] --replace-all name value [value-regex]
git config [<file-option>] [type] [--show-origin] [-z|--null] --get name [value-regex]
git config [<file-option>] [type] [--show-origin] [-z|--null] --get-all name [value-regex]
git config [<file-option>] [type] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value-regex]
git config [<file-option>] [type] [-z|--null] --get-urlmatch name URL
git config [<file-option>] --unset name [value-regex]
git config [<file-option>] --unset-all name [value-regex]
git config [<file-option>] --rename-section old_name new_name
git config [<file-option>] --remove-section name
git config [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --list
git config [<file-option>] --get-color name [default]
git config [<file-option>] --get-colorbool name [stdout-is-try]
git config [<file-option>] -e | --edit
須要注意的是:Git配置被設置在文本文件中,能夠經過編輯相關的文本文件來修改 這些設置,但強烈不建議這樣作,由於很容易出現錯誤,而且有很容易修改到其餘設置
須要在Git中配置的一件首要事情就是你的身份,這要根據有用戶名和電子郵件來肯定。Git指望你設置這兩個值,這是由於Git是一個源管理系統。因爲其目的是隨時間推移追蹤用戶所作的變動,所以它但願知道誰在進行哪些變動,這樣一來它才能記錄他們
若是不指定這些值,那麼Git將用當前登陸的用戶ID和機器名來填充它們。有可能這並不是咱們但願系統最終使用的身份。能夠經過git config --global user.name <name>和git config --global user.email<email address>
提示:
在Git中設置電子郵件地址時,並不會對其進行驗證。不過Git中的一些高級功能會使用這個電子郵件地址,該功能容許完成建立和共享變動的修訂和壓縮版本這樣的任務。對於該功能而言,使用一個正確的電子郵件地址是很重要的。
global選項是告知Git應該在多大範圍內使用這一配置的一種方式--它應該應用到哪些倉庫。Git模型旨在應用於多個較小的倉庫,而不是較少的總體單一式倉庫。因爲用戶一般會使用多個倉庫,所以必須在每一個倉庫中配置相同的設置會很不方便。所以,Git提供了簡化選擇配置值範圍的選項。有三種可用的級別配置:系統、全局和本地
①系統:系統級別的配置意味着一個配置值會被應用到指定系統上的全部倉庫,除非在一個較低的級別上對其重寫。爲了確保配置值應用在系統級別,要爲config命令指定--system選項,好比git config --system core.autocrlf true
②全局:全局級別的配置代表配置值適用於特定用戶的全部倉庫,除非在本地級別對其進行了重寫。不然這就是用戶要使用的最多見級別,由於它避免了必須爲每個倉庫設置值的工做。這些設置被存儲在每一個用戶的主目錄中的一個名爲.gitconfig的文件中
③本地:在本地級別設置一個配置值意味着該設置只應用與一個倉庫的上下文中,這對於指定一個特定倉庫的惟一設置的場景來講會頗有用。若是須要臨時重寫一個較高級別的設置,那麼它也會頗有用。本地倉庫的配置會被存儲在本地Git倉庫的.git/config中
④設置的層次結構
Git會使用一種特定的搜索順序來找出配置好的設置。首先會在本地倉庫配置中查找一個設置,而後查找全局配置,最後查找系統配置。若是以該搜索順序找到一個指定值,那麼這個值就被使用了。
⑤查看配置值
要查看一個特定配置設置具備什麼值,可使用git config <setting> ,好比git config user.name
⑥列出配置設置
有時可能須要移除特定級別上的一個用戶設置。Git爲此提供了unset選項
$ git config --unset <other options> <value to remove>
這裏的其餘選項指的是其中一個範圍選項。
⑦列出配置設置
與瀏覽配置值有關的另外一個選項是--list,爲git config提供這個list選項會生成一份全部配置設置的列表。默認狀況下,這份列表包含無限定的本地、全局和系統設置。
一、git init
二、git clone
一、git init揭祕
二、進一步深刻了解Git倉庫
三、將config命令映射到配置文件
四、建立參數化別名