?
This document uses PHP Chinese website manual Release
git - 遲鈍的內(nèi)容跟蹤器
git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p|--paginate|--no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] [--super-prefix=<path>] <command> [<args>]
Git 是一個(gè)快速,可擴(kuò)展的分布式修訂控制系統(tǒng),具有異常豐富的命令集,可提供高級(jí)操作和對(duì)內(nèi)部的全面訪問。
請(qǐng)參閱 gittutorial [7] 開始,然后參閱 giteveryday [7] 以獲取有用的最小命令集。Git 用戶手冊(cè)有更深入的介紹。
掌握了基本概念之后,您可以回到此頁面來了解 Git 提供的命令。你可以通過“git help command”了解更多關(guān)于單個(gè) Git 命令的信息。gitcli [7]手冊(cè)頁為您提供了命令行命令語法的概述。
格式化和超鏈接的最新 Git 文檔可以在這里查看https://git.github.io/htmldocs/git.html
。
--version
打印該git
程序來自的 Git 套件版本。
--help
打印大綱和最常用命令的列表。如果選擇--all
或-a
給出,則打印所有可用的命令。如果一個(gè) Git 命令被命名了,這個(gè)選項(xiàng)將會(huì)彈出該命令的手冊(cè)頁。
其他選項(xiàng)可用于控制手冊(cè)頁的顯示方式。請(qǐng)參閱 git-help [1] 以獲取更多信息,因?yàn)樗鼈?code>git --help ...被內(nèi)部轉(zhuǎn)換為git help ...
。
-C <path>
運(yùn)行就好像 git 是在<path>
當(dāng)前工作目錄中開始的。當(dāng)-C
給出多個(gè)選項(xiàng)時(shí),每個(gè)隨后的非絕對(duì)-C <path>
都相對(duì)于前面的解釋-C <path>
。
此選項(xiàng)會(huì)影響預(yù)期的路徑名的選項(xiàng)一樣--git-dir
,并--work-tree
在他們的路徑名的解釋,將相對(duì)于所造成的工作目錄進(jìn)行-C
選擇。例如,以下調(diào)用是等同的:
git --git-dir=a.git --work-tree=b -C c status git --git-dir=c/a.git --work-tree=c/b status
-c <name>=<value>
將配置參數(shù)傳遞給命令。給定的值將覆蓋配置文件中的值。預(yù)期
<name> 的格式與列出的格式相同git config
(以小圓點(diǎn)分隔的子鍵)。
請(qǐng)注意,忽略=
in git -c foo.bar ...
是允許的,并設(shè)置foo.bar
為布爾值 true(就像[foo]bar
在配置文件中那樣)。包括等號(hào)但有一個(gè)空值(如git -c foo.bar= ...
)設(shè)置foo.bar
為git config --bool
將轉(zhuǎn)換為空字符串false
。
--exec-path=<path>
安裝核心 Git 程序的路徑。這也可以通過設(shè)置 GIT_EXEC_PATH
環(huán)境變量來控制。如果沒有給出路徑,git
將打印當(dāng)前設(shè)置,然后退出。
--html-path
打印路徑,不加斜杠,其中安裝了 Git 的 HTML 文檔并退出。
--man-path
打印man(1)
此版本 Git 手冊(cè)頁的 manpath(請(qǐng)參閱參考資料)并退出。
--info-path
打印記錄此版本 Git 的 Info 文件的安裝路徑并退出。
-p --paginate
less
如果標(biāo)準(zhǔn)輸出是終端,則將所有輸出管道(或者如果設(shè)置,則為 $ PAGER )。這會(huì)覆蓋pager.<cmd>
配置選項(xiàng)(請(qǐng)參閱下面的“配置機(jī)制”部分)。
--no-pager
不要將 Git 輸出傳送到尋呼機(jī)。
--git-dir=<path>
設(shè)置存儲(chǔ)庫的路徑。這也可以通過設(shè)置GIT_DIR
環(huán)境變量來控制。它可以是當(dāng)前工作目錄的絕對(duì)路徑或相對(duì)路徑。
--work-tree=<path>
設(shè)置工作樹的路徑。它可以是相對(duì)于當(dāng)前工作目錄的絕對(duì)路徑或路徑。這也可以通過設(shè)置 GIT_WORK_TREE 環(huán)境變量和 core.worktree 配置變量來控制(有關(guān)更詳細(xì)的討論,請(qǐng)參閱 git-config [1] 中的 core.worktree )。
--namespace=<path>
設(shè)置 Git 名稱空間。有關(guān)更多詳細(xì)信息,請(qǐng)參閱 gitnamespaces [7] 。相當(dāng)于設(shè)置GIT_NAMESPACE
環(huán)境變量。
--super-prefix=<path>
目前僅供內(nèi)部使用。設(shè)置一個(gè)前綴,它提供從存儲(chǔ)庫上方到其根目錄的路徑。一個(gè)用途是給出調(diào)用它的超級(jí)項(xiàng)目的子模塊上下文。
--bare
將存儲(chǔ)庫視為裸存儲(chǔ)庫。如果未設(shè)置 GIT_DIR 環(huán)境,則將其設(shè)置為當(dāng)前工作目錄。
--no-replace-objects
不要使用替換參考來替換 Git 對(duì)象。有關(guān)更多信息,請(qǐng)參見 git-replace [1] 。
--literal-pathspecs
字面上處理 pathspecs(即沒有 globbing,沒有 pathspec magic)。這相當(dāng)于將GIT_LITERAL_PATHSPECS
環(huán)境變量設(shè)置為1
。
--glob-pathspecs
將“glob”魔法添加到所有 pathspec。這相當(dāng)于將GIT_GLOB_PATHSPECS
環(huán)境變量設(shè)置為1
。禁用單個(gè)路徑規(guī)范上的 globbing 可以使用 pathspec magic “:(literal)”來完成
--noglob-pathspecs
將“文字”魔法添加到所有 pathspec。這相當(dāng)于將GIT_NOGLOB_PATHSPECS
環(huán)境變量設(shè)置為1
??梢允褂?
pathspec magic“:(glob)”來啟用單個(gè) pathspecs 上的
globbing
--icase-pathspecs
將“icase”魔法添加到所有 pathspec。這相當(dāng)于將GIT_ICASE_PATHSPECS
環(huán)境變量設(shè)置為1
。
我們將 Git 分為高級(jí)(“瓷器”)命令和低級(jí)別(“管道”)命令。
我們將 porcelain 命令分成主要命令和一些輔助用戶實(shí)用程序。
git-add[1]
將文件內(nèi)容添加到索引
git-am[1]
從郵箱中應(yīng)用一系列修補(bǔ)程序
git-archive[1]
從命名樹創(chuàng)建文件的存檔
git-bisect[1]
使用二分查找找到引入錯(cuò)誤的提交
git-branch[1]
列出,創(chuàng)建或刪除分支
git-bundle[1]
通過歸檔移動(dòng)對(duì)象和引用
git-checkout[1]
切換分支或恢復(fù)工作樹文件
git-cherry-pick[1]
應(yīng)用一些現(xiàn)有提交引入的更改
git-citool[1]
git-commit 的圖形替代
git-clean[1]
從工作樹中刪除未跟蹤的文件
git-clone[1]
將存儲(chǔ)庫克隆到新目錄中
git-commit[1]
記錄對(duì)存儲(chǔ)庫的更改
git-describe[1]
描述一個(gè)提交,使用它可以訪問的最近的標(biāo)簽
git-diff[1]
在commits,commit 和 working tree 等之間顯示更改
git-fetch[1]
從另一個(gè)存儲(chǔ)庫下載對(duì)象和參考
git-format-patch[1]
準(zhǔn)備電子郵件提交 patches
git-gc[1]
清理不必要的文件并優(yōu)化本地存儲(chǔ)庫
git-grep[1]
打印符合圖案的線條
git-gui[1]
Git 的便攜式圖形界面
git-init[1]
創(chuàng)建一個(gè)空的 Git 存儲(chǔ)庫或重新初始化現(xiàn)有的存儲(chǔ)庫
gitk[1]
Git 存儲(chǔ)庫瀏覽器
git-log[1]
顯示提交日志
git-merge[1]
集合兩個(gè)或更多發(fā)展歷史
git-mv[1]
移動(dòng)或重命名文件,目錄或符號(hào)鏈接
git-notes[1]
添加或檢查對(duì)象注釋
git-pull[1]
從另一個(gè)存儲(chǔ)庫或本地分支中獲取并與其集成
git-push[1]
更新遠(yuǎn)程引用以及關(guān)聯(lián)的對(duì)象
git-rebase[1]
重新申請(qǐng)?jiān)诹硪粋€(gè)基本技巧之上提交
git-reset[1]
將當(dāng)前 HEAD 重置為指定狀態(tài)
git-revert[1]
恢復(fù)一些現(xiàn)有的提交
git-rm[1]
從工作樹和索引中刪除文件
git-shortlog[1]
總結(jié)git log
輸出
git-show[1]
顯示各種類型的對(duì)象
git-stash[1]
將變化存儲(chǔ)在不完美的工作目錄中
git-status[1]
顯示工作樹的狀態(tài)
git-submodule[1]
初始化,更新或檢查子模塊
git-tag[1]
創(chuàng)建,列出,刪除或驗(yàn)證使用 GPG 簽名的標(biāo)簽對(duì)象
git-worktree[1]
管理多個(gè)工作樹
機(jī)器人:
git-config[1]
獲取并設(shè)置存儲(chǔ)庫或全局選項(xiàng)
git-fast-export[1]
Git 數(shù)據(jù)導(dǎo)出器
git-fast-import[1]
適用于快速 Git 數(shù)據(jù)導(dǎo)入器的后端
git-filter-branch[1]
重寫分支
git-mergetool[1]
運(yùn)行合并沖突解決工具來解決合并沖突
git-pack-refs[1]
打包首部和標(biāo)簽以實(shí)現(xiàn)有效的存儲(chǔ)庫訪問
git-prune[1]
修改對(duì)象數(shù)據(jù)庫中的所有不可達(dá)對(duì)象
git-reflog[1]
管理 reflog 信息
git-remote[1]
管理一組已跟蹤的存儲(chǔ)庫
git-repack[1]
將解包的對(duì)象打包到存儲(chǔ)庫中
git-replace[1]
創(chuàng)建,列出,刪除參考替換對(duì)象
讀寫器:
git-annotate[1]
用提交信息注釋文件行
git-blame[1]
顯示修訂版本和作者上次修改文件的每一行
git-cherry[1]
查找尚未應(yīng)用于上游的提交
git-count-objects[1]
計(jì)算未包裝的對(duì)象數(shù)量及其磁盤消耗量
git-difftool[1]
使用常見差異工具顯示更改
git-fsck[1]
驗(yàn)證數(shù)據(jù)庫中對(duì)象的連通性和有效性
git-get-tar-commit-id[1]
從使用 git-archive 創(chuàng)建的存檔中提取提交 ID
git-help[1]
顯示關(guān)于 Git 的幫助信息
git-instaweb[1]
在 gitweb 中即時(shí)瀏覽您的工作存儲(chǔ)庫
git-merge-tree[1]
無需觸摸索引即可顯示三路合并
git-rerere[1]
重復(fù)使用沖突合并的記錄分辨率
git-rev-parse[1]
選取并按摩參數(shù)
git-show-branch[1]
顯示分支和他們的提交
git-verify-commit[1]
檢查提交的 GPG 簽名
git-verify-tag[1]
檢查標(biāo)簽的GPG簽名
gitweb[1]
Git Web 界面(Git 倉庫的前端)
git-whatchanged[1]
顯示每個(gè)提交引入的差異日志
這些命令將通過電子郵件補(bǔ)丁與外國 SCM 和其他人進(jìn)行交互。
git-archimport[1]
將 Arch 存儲(chǔ)庫導(dǎo)入到 Git 中
git-cvsexportcommit[1]
將單個(gè)提交導(dǎo)出到 CVS 簽出
git-cvsimport[1]
將您的數(shù)據(jù)從另一個(gè)人們常常不喜歡的 SCM 中拯救出來
git-cvsserver[1]
Git 的 CVS 服務(wù)器模擬器
git-imap-send[1]
從 stdin 將一組補(bǔ)丁發(fā)送到 IMAP 文件夾
git-p4[1]
從 Perforce 存儲(chǔ)庫導(dǎo)入和提交
git-quiltimport[1]
將一個(gè)被套補(bǔ)丁集應(yīng)用到當(dāng)前分支上
git-request-pull[1]
生成待定更改的摘要
git-send-email[1]
以電子郵件的形式發(fā)送一組修補(bǔ)程序
git-svn[1]
Subversion 版本庫和 Git 之間的雙向操作
雖然 Git 包含自己的瓷器層,但其低級(jí)命令足以支持替代瓷器的開發(fā)。這些 porcelains 的開發(fā)人員可能從閱讀 git-update-index [1] 和 git-read-tree [1] 開始。
這些低級(jí)命令的接口(輸入,輸出,選項(xiàng)集和語義)比 Porcelain 級(jí)命令要穩(wěn)定得多,因?yàn)檫@些命令主要用于腳本使用。另一方面,Porcelain 命令的界面可能會(huì)發(fā)生變化,以改善最終用戶體驗(yàn)。
以下描述將低級(jí)命令劃分為操縱對(duì)象(在存儲(chǔ)庫,索引和工作樹中),查詢和比較對(duì)象的命令以及在存儲(chǔ)庫之間移動(dòng)對(duì)象和引用的命令。
git-apply[1]
將修補(bǔ)程序應(yīng)用于文件和/或索引
git-checkout-index[1]
將索引中的文件復(fù)制到工作樹中
git-commit-tree[1]
創(chuàng)建一個(gè)新的提交對(duì)象
git-hash-object[1]
計(jì)算對(duì)象 ID 并可選擇從文件創(chuàng)建一個(gè) blob
git-index-pack[1]
為現(xiàn)有打包歸檔生成包索引文件
git-merge-file[1]
運(yùn)行三路文件合并
git-merge-index[1]
為需要合并的文件運(yùn)行合并
git-mktag[1]
創(chuàng)建一個(gè)標(biāo)簽對(duì)象
git-mktree[1]
從 ls-tree 格式的文本構(gòu)建一個(gè)樹對(duì)象
git-pack-objects[1]
創(chuàng)建對(duì)象的打包存檔
git-prune-packed[1]
刪除已經(jīng)在包文件中的額外對(duì)象
git-read-tree[1]
將樹信息讀入索引
git-symbolic-ref[1]
閱讀,修改和刪除符號(hào)參考
git-unpack-objects[1]
從打包的壓縮文件中解壓縮對(duì)象
git-update-index[1]
將工作樹中的文件內(nèi)容注冊(cè)到索引
git-update-ref[1]
安全地更新存儲(chǔ)在 ref 中的對(duì)象名稱
git-write-tree[1]
從當(dāng)前索引創(chuàng)建一個(gè)樹對(duì)象
git-cat-file[1]
為存儲(chǔ)庫對(duì)象提供內(nèi)容或類型和大小信息
git-diff-files[1]
比較工作樹中的文件和索引
git-diff-index[1]
將樹與工作樹或索引進(jìn)行比較
git-diff-tree[1]
比較通過兩個(gè)樹對(duì)象找到的斑點(diǎn)的內(nèi)容和模式
git-for-each-ref[1]
輸出每個(gè)參考信息
git-ls-files[1]
顯示有關(guān)索引和工作樹中文件的信息
git-ls-remote[1]
在遠(yuǎn)程存儲(chǔ)庫中列出引用
git-ls-tree[1]
列出樹對(duì)象的內(nèi)容
git-merge-base[1]
為合并找到盡可能好的共同上代
git-name-rev[1]
查找給定轉(zhuǎn)速的符號(hào)名稱
git-pack-redundant[1]
找到多余的包文件
git-rev-list[1]
按時(shí)間順序列出提交對(duì)象
git-show-index[1]
顯示打包歸檔索引
git-show-ref[1]
在本地存儲(chǔ)庫中列出引用
git-unpack-file[1]
用 blob 的內(nèi)容創(chuàng)建一個(gè)臨時(shí)文件
git-var[1]
顯示一個(gè) Git 邏輯變量
git-verify-pack[1]
驗(yàn)證打包的 Git 存檔文件
通常,詢問命令不會(huì)觸摸工作樹中的文件。
git-daemon[1]
一個(gè)非常簡單的 Git 倉庫服務(wù)器
git-fetch-pack[1]
從另一個(gè)存儲(chǔ)庫接收丟失的對(duì)象
git-http-backend[1]
服務(wù)器端通過 HTTP 實(shí)現(xiàn) Git
git-send-pack[1]
將對(duì)象通過 Git 協(xié)議推送到另一個(gè)存儲(chǔ)庫
git-update-server-info[1]
更新輔助信息文件以幫助遲鈍的服務(wù)器
以下是上述使用的幫助程序命令; 最終用戶通常不會(huì)直接使用它們。
git-http-fetch[1]
通過 HTTP 從遠(yuǎn)程 Git 存儲(chǔ)庫下載
git-http-push[1]
通過 HTTP / DAV 將對(duì)象推送到另一個(gè)存儲(chǔ)庫
git-parse-remote[1]
幫助解析遠(yuǎn)程存儲(chǔ)庫訪問參數(shù)的例程
git-receive-pack[1]
接收推入存儲(chǔ)庫的內(nèi)容
git-shell[1]
僅 Git-only SSH 訪問的受限登錄 shell
git-upload-archive[1]
將檔案發(fā)送回 git-archive
git-upload-pack[1]
將對(duì)象發(fā)送回 git-fetch-pack
這些是其他命令使用的內(nèi)部幫助程序命令; 最終用戶通常不會(huì)直接使用它們。
git-check-attr[1]
顯示 gitattributes 信息
git-check-ignore[1]
調(diào)試 gitignore /排除 文件
git-check-mailmap[1]
顯示聯(lián)系人的規(guī)范名稱和電子郵件地址
git-check-ref-format[1]
確保參考名稱格式正確
git-column[1]
以列的形式顯示數(shù)據(jù)
git-credential[1]
檢索并存儲(chǔ)用戶憑證
git-credential-cache[1]
助手臨時(shí)將密碼存儲(chǔ)在內(nèi)存中
git-credential-store[1]
助手將憑據(jù)存儲(chǔ)在磁盤上
git-fmt-merge-msg[1]
生成合并提交消息
git-interpret-trailers[1]
幫助將結(jié)構(gòu)化信息添加到提交消息
git-mailinfo[1]
從單個(gè)電子郵件中提取補(bǔ)丁和作者身份
git-mailsplit[1]
簡單的 UNIX mbox 分離器程序
git-merge-one-file[1]
與 git-merge-index 一起使用的標(biāo)準(zhǔn)幫助程序
git-patch-id[1]
計(jì)算補(bǔ)丁的唯一 ID
git-sh-i18n[1]
Git 的 shell 腳本的 i18n 設(shè)置代碼
git-sh-setup[1]
常見的 Git shell 腳本設(shè)置代碼
git-stripspace[1]
刪除不必要的空白
Git 使用簡單的文本格式來存儲(chǔ)每個(gè)存儲(chǔ)庫和每個(gè)用戶的定制。這樣的配置文件可能如下所示:
# # A '#' or ';' character indicates a comment.#; core variables[core] ; Don't trust file modes filemode = false; user identity[user] name = "Junio C Hamano" email = "gitster@pobox.com"
從配置文件讀取各種命令并相應(yīng)地調(diào)整其操作。有關(guān)配置機(jī)制的列表和更多詳細(xì)信息,請(qǐng)參閱 git-config [1]。
<object>
指示任何類型對(duì)象的對(duì)象名稱。
<blob>
指示一個(gè) blob 對(duì)象名稱。
<tree>
指示樹對(duì)象名稱。
<commit>
指示提交對(duì)象名稱。
<tree-ish>
指示樹,提交或標(biāo)記對(duì)象名稱。接受 <tree-ish> 參數(shù)的命令最終希望對(duì) <tree> 對(duì)象進(jìn)行操作,但是會(huì)自動(dòng)將 <commit> 和 <tag> 對(duì)象的 dereference 指向 <tree> 。
<commit-ish>
指示提交或標(biāo)記對(duì)象名稱。采用 <commit-ish> 參數(shù)的命令最終希望對(duì) <commit> 對(duì)象進(jìn)行操作,但是會(huì)自動(dòng)對(duì)指向 <commit> 的 <tag> 對(duì)象取消引用。
<type>
表示需要一個(gè)對(duì)象類型。目前的一個(gè):blob
,tree
,commit
,或tag
。
<file>
指示文件名 - 幾乎總是相對(duì)于樹結(jié)構(gòu)的根GIT_INDEX_FILE
描述。
任何接受任何 <object> 的 Git 命令都可以使用以下符號(hào)表示法:
HEAD
表示當(dāng)前分支的 head 。
<tag>
一個(gè)有效的標(biāo)簽name
(即refs/tags/<tag>
參考)。
<head>
一個(gè)有效的 head name
(即refs/heads/<head>
參考)。
有關(guān)拼寫對(duì)象名稱的更完整列表,請(qǐng)參閱 gitrevisions [7] 中的“指定修訂”部分。
請(qǐng)參閱 gitrepository-layout [5] 文檔。
閱讀 githooks [5] 了解每個(gè) hook 的更多細(xì)節(jié)。
更高層次的 SCM 可能會(huì)提供和管理附加信息$GIT_DIR
。
請(qǐng)參閱 gitglossary [7] 。
各種 Git 命令使用以下環(huán)境變量:
這些環(huán)境變量適用于all
核心 Git 命令。鈮:值得注意的是,他們可能會(huì)被 SCMS 使用/覆蓋,因此如果使用外部前端,請(qǐng)注意。
GIT_INDEX_FILE
該環(huán)境允許指定備用索引文件。如果未指定,$GIT_DIR/index
則使用默認(rèn)值。
GIT_INDEX_VERSION
此環(huán)境變量允許為新存儲(chǔ)庫指定索引版本。它不會(huì)影響現(xiàn)有的索引文件。默認(rèn)使用索引文件版本2或3。有關(guān)更多信息,請(qǐng)參閱 git-update-index [1] 。
GIT_OBJECT_DIRECTORY
如果通過此環(huán)境變量指定了對(duì)象存儲(chǔ)目錄,則在下面創(chuàng)建 sha1 目錄 - 否則使用默認(rèn)$GIT_DIR/objects
目錄。
GIT_ALTERNATE_OBJECT_DIRECTORIES
由于 Git 對(duì)象的不變性質(zhì),舊對(duì)象可以歸檔到共享的只讀目錄中。這個(gè)變量指定了一個(gè)“:”分隔的(在 Windows “;” 分隔的) Git 對(duì)象目錄列表,可以用來搜索 Git 對(duì)象。新對(duì)象不會(huì)寫入這些目錄。
Entries that begin with `"` (double-quote) will be interpretedas C-style quoted paths, removing leading and trailing double-quotes and respecting backslash escapes. E.g., the value`"path-with-\"-and-:-in-it":vanilla-path` has two paths:`path-with-"-and-:-in-it` and `vanilla-path`.
GIT_DIR
如果GIT_DIR
設(shè)置了環(huán)境變量,那么它將指定一個(gè)要使用的路徑,而不是指定.git
存儲(chǔ)庫基礎(chǔ)的缺省路徑。該--git-dir
命令行選項(xiàng)還設(shè)置這個(gè)值。
GIT_WORK_TREE
將路徑設(shè)置為工作樹的根目錄。這也可以通過--work-tree
命令行選項(xiàng)和 core.worktree 配置變量來控制。
GIT_NAMESPACE
設(shè)置 Git 名稱空間; 有關(guān)詳細(xì)信息,請(qǐng)參閱 gitnamespaces [7] 。該--namespace
命令行選項(xiàng)還設(shè)置這個(gè)值。
GIT_CEILING_DIRECTORIES
這應(yīng)該是以冒號(hào)分隔的絕對(duì)路徑列表。如果設(shè)置了,那么當(dāng)查找存儲(chǔ)庫目錄時(shí)(這對(duì)于排除慢速加載網(wǎng)絡(luò)目錄很有用),它是 Git 不應(yīng)該查找的目錄列表。它不會(huì)排除當(dāng)前工作目錄或在命令行或環(huán)境中設(shè)置的 GIT_DIR 。通常,Git 必須讀取此列表中的條目并解析可能存在的任何符號(hào)鏈接,以便將它們與當(dāng)前目錄進(jìn)行比較。但是,如果訪問速度很慢,則可以向列表中添加一個(gè)空條目,以告知 Git 后續(xù)條目不是符號(hào)鏈接并且不需要解析; 例如GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink
。
GIT_DISCOVERY_ACROSS_FILESYSTEM
當(dāng)在沒有“.git”存儲(chǔ)庫目錄的目錄中運(yùn)行時(shí),Git 會(huì)嘗試在父目錄中找到這樣一個(gè)目錄以查找工作樹的頂部,但默認(rèn)情況下它不會(huì)跨越文件系統(tǒng)邊界。這個(gè)環(huán)境變量可以設(shè)置為 true 來告訴 Git 不要停在文件系統(tǒng)邊界。就像這樣GIT_CEILING_DIRECTORIES
,這不會(huì)影響通過GIT_DIR
命令行或通過命令行設(shè)置的顯式存儲(chǔ)庫目錄。
GIT_COMMON_DIR
如果將此變量設(shè)置為路徑,則通常位于 $ GIT_DIR 中的非工作文件文件將取自此路徑。HEAD 或索引等工作特定的文件來自 $ GIT_DIR 。有關(guān)詳細(xì)信息,請(qǐng)參閱 gitrepository-layout [5] 和 git-worktree [1] 。此變量的優(yōu)先級(jí)低于其他路徑變量,如 GIT_INDEX_FILE,GIT_OBJECT_DIRECTORY ...
GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL
GIT_AUTHOR_DATE
GIT_COMMITTER_NAME
GIT_COMMITTER_EMAIL
GIT_COMMITTER_DATE
EMAIL
see git-commit-tree[1]
GIT_DIFF_OPTS
只有有效的設(shè)置是 “--unified = ??” 或 “-u ??” 設(shè)置創(chuàng)建統(tǒng)一差異時(shí)顯示的上下文行數(shù)。這優(yōu)先于在 Git diff 命令行上傳遞的任何 “-U” 或 “--unified” 選項(xiàng)值。
GIT_EXTERNAL_DIFF
當(dāng)設(shè)置環(huán)境變量時(shí)GIT_EXTERNAL_DIFF
,將調(diào)用由其命名的程序,而不是上述的差異調(diào)用。對(duì)于添加,刪除或修改的路徑,將GIT_EXTERNAL_DIFF
使用7個(gè)參數(shù)調(diào)用:
path old-file old-hex old-mode new-file new-hex new-mode
哪里:
<old|new>-file
是 GIT_EXTERNAL_DIFF 可用于讀取 <old | new> 的內(nèi)容的文件,
<old|new>-hex
是 40-hexdigit SHA-1 散列,
<old|new>-mode
是用文件模式的八進(jìn)制表示。
文件參數(shù)可以指向用戶的工作文件(例如,new-file
在 “git-diff-files” 中),/dev/null
(例如,old-file
當(dāng)添加新文件時(shí))或臨時(shí)文件(例如old-file
在索引中)。GIT_EXTERNAL_DIFF
不應(yīng)該擔(dān)心取消臨時(shí)文件的鏈接 - GIT_EXTERNAL_DIFF
退出時(shí)會(huì)將其刪除。
對(duì)于未合并的路徑,GIT_EXTERNAL_DIFF
使用1參數(shù)調(diào)用 <path> 。
為每個(gè)路徑GIT_EXTERNAL_DIFF
調(diào)用兩個(gè)環(huán)境變量,GIT_DIFF_PATH_COUNTER
并GIT_DIFF_PATH_TOTAL
進(jìn)行設(shè)置。
GIT_DIFF_PATH_COUNTER
對(duì)于每個(gè)路徑,基于1的計(jì)數(shù)器都加1。
GIT_DIFF_PATH_TOTAL
路徑的總數(shù)。
GIT_MERGE_VERBOSITY
一個(gè)數(shù)字,用于控制遞歸合并策略所顯示的輸出量。重寫 merge.verbosity。見 git-merge [1]
GIT_PAGER
這個(gè)環(huán)境變量覆蓋$PAGER
。如果它設(shè)置為空字符串或值“cat”,Git 將不會(huì)啟動(dòng)尋呼機(jī)。另請(qǐng)參閱core.pager
git-config [1] 中的選項(xiàng)。
GIT_EDITOR
這個(gè)環(huán)境變量覆蓋$EDITOR
和$VISUAL
。當(dāng)在交互模式下,編輯器將被啟動(dòng)時(shí),它被幾個(gè) Git 命令使用。另請(qǐng)參閱 git-var [1] 和core.editor
git-config [1] 中的選項(xiàng)。
GIT_SSH
GIT_SSH_COMMAND
如果這些環(huán)境變量的設(shè)置,那么git fetch
與git push
將使用指定的命令,而不是ssh
當(dāng)他們需要連接到遠(yuǎn)程系統(tǒng)。該命令將只有兩個(gè)或四個(gè)參數(shù):(username@host
或者僅僅host
)來自 URL 和 shell 命令,以便在遠(yuǎn)程系統(tǒng)上執(zhí)行,可選地,前面的-p
(字面意思)和port
URL 指定的內(nèi)容不是默認(rèn)的 SSH 港口。
$GIT_SSH_COMMAND
優(yōu)先于$GIT_SSH
,并且由 shell 解釋,這允許包括額外的參數(shù)。$GIT_SSH
另一方面必須是程序的路徑(如果需要額外的參數(shù),它可以是包裝程序的外殼腳本)。
通常情況下,通過個(gè)人.ssh/config
文件配置任何所需的選項(xiàng)比較容易。有關(guān)更多詳細(xì)信息,請(qǐng)參閱您的 ssh 文檔。
GIT_SSH_VARIANT
如果這個(gè)環(huán)境變量設(shè)置,它將覆蓋 Git 的自動(dòng)檢測是否GIT_SSH
/ GIT_SSH_COMMAND
/ core.sshCommand
參考的 OpenSSH ,plink 或 TortoisePlink。該變量覆蓋了ssh.variant
用于相同目的的配置設(shè)置。
GIT_ASKPASS
如果設(shè)置了此環(huán)境變量,那么需要獲取密碼或密碼(例如,用于HTTP或IMAP身份驗(yàn)證)的 Git 命令將使用適當(dāng)?shù)奶崾咀鳛槊钚袇?shù)調(diào)用該程序,并從其 STDOUT 讀取密碼。另請(qǐng)參閱core.askPass
git-config [1] 中的選項(xiàng)。
GIT_TERMINAL_PROMPT
如果此環(huán)境變量設(shè)置為0
,則git不會(huì)在終端上提示(例如,請(qǐng)求 HTTP 身份驗(yàn)證時(shí))。
GIT_CONFIG_NOSYSTEM
是否跳過從系統(tǒng)范圍$(prefix)/etc/gitconfig
文件讀取設(shè)置。此環(huán)境變量可以搭配一起$HOME
,并$XDG_CONFIG_HOME
為挑剔的腳本來創(chuàng)建一個(gè)可預(yù)測的環(huán)境,也可以暫時(shí)將其設(shè)置為避免使用 buggy /etc/gitconfig
文件,而等待有人具有足夠的權(quán)限來修復(fù)它。
GIT_FLUSH
如果該環(huán)境變量被設(shè)置為“1”,則命令,比如git blame
(在增量模式下),git rev-list
,git log
,git check-attr
和 git check-ignore
將迫使輸出流的一個(gè)齊平的每個(gè)記錄已經(jīng)刷新之后。如果此變量設(shè)置為“0”,則這些命令的輸出將使用完全緩沖的 I / O 完成。如果這個(gè)環(huán)境變量沒有設(shè)置,Git
會(huì)根據(jù)標(biāo)準(zhǔn)輸出是否被重定向到文件來選擇緩沖或面向記錄的刷新。
GIT_TRACE
啟用常規(guī)跟蹤消息,例如別名擴(kuò)展,內(nèi)置命令執(zhí)行和外部命令執(zhí)行。
如果此變量設(shè)置為“1”,“2”或“true”(比較不區(qū)分大小寫),則跟蹤消息將會(huì)被打印到 stderr。
如果變量設(shè)置為大于2且小于10的整數(shù)值(嚴(yán)格),那么 Git 會(huì)將此值解釋為打開的文件描述符,并嘗試將跟蹤消息寫入此文件描述符。
或者,如果變量設(shè)置為絕對(duì)路徑(以/
字符開頭),Git 會(huì)將其解釋為文件路徑,并嘗試將跟蹤消息寫入其中。
取消設(shè)置變量或?qū)⑵湓O(shè)置為空,“0”或“false”(不區(qū)分大小寫)將禁用跟蹤消息。
GIT_TRACE_PACK_ACCESS
為所有包訪問啟用跟蹤消息。對(duì)于每次訪問,都會(huì)記錄包中的包文件名和偏移量。這可能有助于解決某些與包相關(guān)的性能問題。請(qǐng)參閱GIT_TRACE
可用的跟蹤輸出選項(xiàng)。
GIT_TRACE_PACKET
為進(jìn)入或離開給定程序的所有數(shù)據(jù)包啟用跟蹤消息。這可以幫助調(diào)試對(duì)象協(xié)商或其他協(xié)議問題。在以“PACK”開頭的數(shù)據(jù)包中關(guān)閉跟蹤(但見GIT_TRACE_PACKFILE
下文)。請(qǐng)參閱GIT_TRACE
可用的跟蹤輸出選項(xiàng)。
GIT_TRACE_PACKFILE
啟用對(duì)給定程序發(fā)送或接收的包文件的跟蹤。與其他跟蹤輸出不同,此跟蹤是逐字的:沒有標(biāo)題,也沒有引用二進(jìn)制數(shù)據(jù)。你幾乎肯定希望直接進(jìn)入一個(gè)文件(例如GIT_TRACE_PACKFILE=/tmp/my.pack
),而不是在終端上顯示它或?qū)⑺c其他跟蹤輸出混合。
請(qǐng)注意,目前這只適用于克隆和提取的客戶端。
GIT_TRACE_PERFORMANCE
啟用性能相關(guān)的跟蹤消息,例如每個(gè) Git 命令的總執(zhí)行時(shí)間。請(qǐng)參閱GIT_TRACE
可用的跟蹤輸出選項(xiàng)。
GIT_TRACE_SETUP
在 Git 完成設(shè)置階段后,啟用跟蹤消息打印 .git ,工作樹和當(dāng)前工作目錄。請(qǐng)參閱GIT_TRACE
可用的跟蹤輸出選項(xiàng)。
GIT_TRACE_SHALLOW
啟用可幫助調(diào)試淺存儲(chǔ)庫的提取/克隆的跟蹤消息。請(qǐng)參閱GIT_TRACE
可用的跟蹤輸出選項(xiàng)。
GIT_TRACE_CURL
啟用 git 傳輸協(xié)議的所有傳入和傳出數(shù)據(jù)(包括描述性信息)的卷曲完全跟蹤轉(zhuǎn)儲(chǔ)。這與--trace-ascii
在命令行上進(jìn)行卷曲相似。該選項(xiàng)將覆蓋設(shè)置GIT_CURL_VERBOSE
環(huán)境變量。請(qǐng)參閱GIT_TRACE
可用的跟蹤輸出選項(xiàng)。
GIT_LITERAL_PATHSPECS
設(shè)置這個(gè)變量1
將導(dǎo)致 Git 字面上處理所有的 pathspecs ,而不是作為 glob 模式。例如,運(yùn)行GIT_LITERAL_PATHSPECS=1 git log -- '*.c'
將搜索觸摸該路徑的提交*.c
,而不搜索該 glob *.c
匹配的任何路徑。如果你正在向 Git 提供文字路徑(例如,先前給出的路徑git ls-tree
,--raw
diff 輸出等),你可能會(huì)想要這樣做。
GIT_GLOB_PATHSPECS
設(shè)置這個(gè)變量1
將導(dǎo)致 Git 將所有的 pathspecs 視為 glob 模式(又名“glob” magic )。
GIT_NOGLOB_PATHSPECS
設(shè)置這個(gè)變量1
將導(dǎo)致 Git 將所有的 pathspecs 視為文字(又名 “l(fā)iteral” magic )。
GIT_ICASE_PATHSPECS
設(shè)置這個(gè)變量1
將使 Git 將所有的 pathspecs 視為不區(qū)分大小寫。
GIT_REFLOG_ACTION
當(dāng) ref 被更新時(shí),reflog 條目被創(chuàng)建以跟蹤 ref 為什么被更新的原因(通常是更新 ref 的高級(jí)命令的名稱),以及舊的和新的 ref 值。腳本 Porcelain 命令可以使用 set_reflog_action 輔助函數(shù)git-sh-setup
將其名稱設(shè)置為該變量,當(dāng)它由最終用戶作為頂級(jí)命令調(diào)用時(shí),將記錄在 reflog 的主體中。
GIT_REF_PARANOIA
如果設(shè)置為1
,則在遍歷參考列表時(shí)包含破損或嚴(yán)重名稱的參考。在一個(gè)正常的,沒有損壞的存儲(chǔ)庫中,這沒有任何作用。但是,啟用它可能會(huì)幫助 git 檢測并中止一些操作,在出現(xiàn)斷點(diǎn)的情況下。Git 在執(zhí)行破壞性操作(如 git-prune [1] )時(shí)會(huì)自動(dòng)設(shè)置此變量。你不需要自己設(shè)置它,除非你想要確保一個(gè)操作觸及每個(gè)參考(例如,因?yàn)槟阏诳寺∫粋€(gè)存儲(chǔ)庫來進(jìn)行備份)而偏執(zhí)。
GIT_ALLOW_PROTOCOL
如果設(shè)置為以冒號(hào)分隔的協(xié)議列表,則表現(xiàn)得好像protocol.allow
設(shè)置為never
,并且列出的每個(gè)協(xié)議都已protocol.<name>.allow
設(shè)置為always
(覆蓋任何現(xiàn)有配置)。換句話說,任何未提及的協(xié)議都將被禁止(即,這是白名單,而不是黑名單)。有關(guān)protocol.allow
更多詳細(xì)信息,請(qǐng)參閱 git-config [1] 中的說明。
GIT_PROTOCOL_FROM_USER
設(shè)置為0可防止配置為該user
狀態(tài)的 fetch / push / clone 使用的協(xié)議。這對(duì)于限制來自不受信任的存儲(chǔ)庫的遞歸子模塊初始化或?qū)⒖赡懿豢尚诺?URL 提供給 git 命令的程序是有用的。有關(guān)更多詳細(xì)信息,請(qǐng)參閱 git-config [1] 。
有關(guān)以下內(nèi)容的更多詳細(xì)信息,請(qǐng)參閱用戶手冊(cè)和 gitcore-tutorial [7] 的 Git 概念一章。
一個(gè) Git 項(xiàng)目通常包含一個(gè)工作目錄,頂層有一個(gè) “.git” 子目錄。.git 目錄包含一個(gè)表示項(xiàng)目完整歷史記錄的壓縮對(duì)象數(shù)據(jù)庫,一個(gè)將歷史鏈接到工作樹的當(dāng)前內(nèi)容的 “index” 文件,以及指向該歷史記錄的指針,如標(biāo)簽和分支頭。
對(duì)象數(shù)據(jù)庫包含三種主要類型的對(duì)象:blob ,它保存文件數(shù)據(jù); 指向 blob 和其他樹來建立目錄層次結(jié)構(gòu); 和提交,每個(gè)引用一棵樹和一些父類提交。
該提交等同于其他系統(tǒng)稱為“變更集”或“版本”的提交,代表項(xiàng)目歷史記錄中的一個(gè)步驟,每個(gè)父代代表緊接的前一個(gè)步驟。承諾與多個(gè)父母代表合并獨(dú)立的發(fā)展線。
所有對(duì)象都由其內(nèi)容的 SHA-1 散列命名,通常寫為40個(gè)十六進(jìn)制數(shù)字的字符串。這些名稱是全球唯一的。通過對(duì)提交進(jìn)行簽名,可以確保導(dǎo)致提交的整個(gè)歷史記錄。為此提供了第四種對(duì)象類型,即標(biāo)簽。
首次創(chuàng)建時(shí),對(duì)象存儲(chǔ)在單個(gè)文件中,但為了提高效率,以后可以一起壓縮成“包文件”。
命名為 refs 的指針標(biāo)記歷史中的有趣點(diǎn)。一個(gè) ref 可以包含一個(gè)對(duì)象的 SHA-1 名稱或另一個(gè) ref 的名稱。名稱開頭的引用ref/head/
包含正在開發(fā)的分支的最近提交(或“頭”)的 SHA-1 名稱。下面存儲(chǔ)感興趣標(biāo)簽的 SHA-1 名稱ref/tags/
。一個(gè)名為 ref 的特殊 ref HEAD
包含當(dāng)前簽出分支的名稱。
索引文件使用所有路徑的列表進(jìn)行初始化,并且對(duì)于每個(gè)路徑,都會(huì)創(chuàng)建一個(gè) Blob 對(duì)象和一組屬性。blob 對(duì)象代表當(dāng)前分支頭部的文件內(nèi)容。屬性(上次修改時(shí)間,大小等)取自工作樹中的相應(yīng)文件。通過比較這些屬性可以找到對(duì)工作樹的后續(xù)更改。索引可以用新內(nèi)容更新,并且可以從存儲(chǔ)在索引中的內(nèi)容創(chuàng)建新的提交。
該索引還能夠存儲(chǔ)給定路徑名的多個(gè)條目(稱為“階段”)。這些階段用于在合并進(jìn)行時(shí)保存文件的各種未合并版本。
請(qǐng)參閱“說明”部分中的參考資料以開始使用 Git 。以下內(nèi)容可能比第一次使用用戶需要的更詳細(xì)。
用戶手冊(cè)和 gitcore-tutorial [7] 中的 Git 概念章節(jié)都介紹了底層的 Git 體系結(jié)構(gòu)。
有關(guān)推薦的工作流程概述,請(qǐng)參閱 gitworkflows [7] 。
有關(guān)有用的示例,另請(qǐng)參閱 howto 文檔。
內(nèi)部信息記錄在 Git API 文檔中。
從 CVS 遷移的用戶也可能需要閱讀 gitcvs-migration [7] 。
Git 由 Linus Torvalds 創(chuàng)建,目前由 Junio C Hamano 維護(hù)。許多貢獻(xiàn)來自 Git 郵件列表 [git@vger.kernel.org](mailto:git@vger.kernel.org)。http://www.openhub.net/p/git/contributors/summary為您提供了更完整的貢獻(xiàn)者名單。
如果你有一個(gè) git.git 本身的副本,git-shortlog [1] 和 git-blame [1] 的輸出可以顯示作者的項(xiàng)目特定部分。
將錯(cuò)誤報(bào)告給開發(fā)和維護(hù)主要完成的 Git 郵件列表[git@vger.kernel.org](mailto:git@vger.kernel.org)。您無需訂閱該列表即可在該處發(fā)送消息。