設定與組態
取得與建立專案
基本快照
分支與合併
分享與更新專案
檢查與比較
修補
除錯
電子郵件
外部系統
伺服器管理
指南
- gitattributes
- 命令列介面規範
- Git 日常使用
- 常見問題 (FAQ)
- 詞彙表
- 掛鉤 (Hooks)
- gitignore
- gitmodules
- 修訂版本 (Revisions)
- 子模組
- 教學
- 工作流程
- 所有指南...
管理
底層命令 (Plumbing Commands)
- 2.55.0 無變更
-
2.54.0
2026-04-20
-
2.53.0
2026-02-02
- 2.51.1 → 2.52.0 無變更
-
2.51.0
2025-08-18
- 2.48.1 → 2.50.1 無變更
-
2.48.0
2025-01-10
- 2.46.1 → 2.47.3 無變更
-
2.46.0
2024-07-29
- 2.44.1 → 2.45.4 無變更
-
2.44.0
2024-02-23
- 2.43.2 → 2.43.7 無變更
-
2.43.1
2024-02-09
-
2.43.0
2023-11-20
- 2.39.1 → 2.42.4 無變動
-
2.39.0
2022-12-12
- 2.36.1 → 2.38.5 無變更
-
2.36.0
2022-04-18
- 2.33.1 → 2.35.8 無變更
-
2.33.0
2021-08-16
- 2.30.1 → 2.32.7 無變更
-
2.30.0
2020-12-27
- 2.23.1 → 2.29.3 無變更
-
2.23.0
2019-08-16
- 2.22.1 → 2.22.5 無變更
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 無變更
-
2.21.0
2019-02-24
- 2.19.1 → 2.20.5 無變更
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 無變更
-
2.18.0
2018-06-21
- 2.15.4 → 2.17.6 無變更
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
-
2.12.5
2017-09-22
- 2.9.5 → 2.11.4 無變更
-
2.8.6
2017-07-30
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
- 2.5.6 無變更
-
2.4.12
2017-05-05
- 2.3.10 無變更
-
2.2.3
2015-09-04
- 2.1.4 無變更
-
2.0.5
2014-12-17
描述
- 替代物件資料庫 (alternate object database)
-
透過 alternates 機制,一個 儲存庫 可以從另一個稱為「替代」(alternate) 的物件資料庫中繼承其部分 物件資料庫。
- 裸儲存庫 (bare repository)
-
裸儲存庫通常是一個命名恰當且帶有
.git後綴的 目錄,其中沒有任何受版本控制檔案的本地檢出副本。也就是說,平時應存在於隱藏.git子目錄中的所有 Git 管理與控制檔案,現在直接存在於repository.git目錄中,且沒有其他檔案被檢出。通常公共儲存庫的發布者會提供裸儲存庫。 - blob 物件 (blob object)
-
無類型的 物件,例如檔案的內容。
- 分支 (branch)
-
「分支」是一條開發線。分支上最新的 提交 (commit) 被稱為該分支的頂端 (tip)。分支的頂端由分支 head 參照,隨著分支上進行更多的開發,它會向前移動。單個 Git 儲存庫 可以追蹤任意數量的分支,但您的 工作樹 僅與其中一個(「當前」或「已檢出」的分支)相關聯,且 HEAD 指向該分支。
- 快取 (cache)
-
過時術語,現指:索引 (index)。
- 鏈 (chain)
- 變更集 (changeset)
-
BitKeeper/cvsps 對「提交」的說法。由於 Git 儲存的不是變更而是狀態,因此在 Git 中使用「變更集」一詞並不準確。
- 檢出 (checkout)
-
使用 物件資料庫 中的 樹狀物件 或 blob 來更新全部或部分 工作樹 的動作;若整個工作樹已被指向一個新的 分支,則同時更新 索引 和 HEAD。
- 揀選 (cherry-picking)
-
在 SCM 行話中,「揀選」意指從一系列變更(通常是提交)中挑選出一個子集,並將它們記錄為在不同代碼庫之上的新系列變更。在 Git 中,這是透過「git cherry-pick」指令執行的,用以提取現有 提交 所引入的變更,並基於當前 分支 的頂端將其記錄為一個新的提交。
- 乾淨 (clean)
- 提交 (commit)
-
作為名詞:Git 歷史中的單一點;專案的整個歷史由一組相互關聯的提交來表示。Git 經常用「commit」一詞,其用法與其他版本控制系統中的「修訂」(revision) 或「版本」(version) 相同。也用作 提交物件 的簡稱。
- 提交圖概念、表示與用法
-
這是由物件資料庫中的提交所形成的 DAG 結構的同義詞,透過分支頂端進行 參照,並使用它們連結的提交 鏈。此結構是定義性的提交圖。該圖可以用其他方式表示,例如 「commit-graph」檔案。
- commit-graph 檔案
-
「commit-graph」(通常帶有連字號)檔案是 提交圖 的補充表示方式,用於加速提交圖的遍歷。「commit-graph」檔案儲存在 .git/objects/info 目錄或替代物件資料庫的 info 目錄中。
- 提交物件 (commit object)
-
包含有關特定 修訂版本 資訊的 物件,例如 父提交、提交者、作者、日期,以及對應於已儲存修訂版本頂層 目錄 的 樹狀物件。
- commit-ish (亦稱 committish)
-
一個 提交物件 或一個可以遞迴 解參照 (dereference) 為提交物件的 物件。以下皆為 commit-ish:一個提交物件、一個指向提交物件的 標籤物件、一個指向指向提交物件之標籤物件的標籤物件,依此類推。
- 核心 Git (core Git)
-
Git 的基本資料結構與工具。僅提供有限的原始碼管理工具。
- DAG
-
有向無環圖 (Directed Acyclic Graph)。提交物件 形成了一個有向無環圖,因為它們有父提交(有向),且提交物件的圖是無環的(沒有任何 鏈 會以同一個 物件 作為開始與結束)。
- 懸空物件 (dangling object)
- 解參照 (dereference)
-
參照到一個 符號參照 (symbolic ref):存取由符號參照所指向之 參照 的動作。遞迴解參照涉及對所得出的參照重複上述過程,直到找到非符號參照為止。
參照到一個 標籤物件:存取標籤所指向之 物件 的動作。標籤透過對結果物件重複該操作進行遞迴解參照,直到結果具有指定的 物件類型(如果適用)或任何非「標籤」的物件類型。在標籤的上下文中,「遞迴解參照」的同義詞是「剝離 (peel)」。
參照到一個 提交物件:存取該提交之樹狀物件的動作。提交無法遞迴解參照。
除非另有說明,否則在 Git 指令或通訊協定的上下文中,「解參照」隱含為遞迴的。
- 分離 HEAD (detached HEAD)
-
通常 HEAD 會儲存一個 分支 的名稱,而操作該 HEAD 所代表歷史的指令,會操作指向該分支頂端的歷史。然而,Git 也允許您 檢出 一個不一定是任何特定分支頂端的任意 提交。在此狀態下的 HEAD 被稱為「分離」。
請注意,在 HEAD 分離時,操作當前分支歷史的指令(例如為了在其上建立新歷史而執行
gitcommit)仍然有效。它們會更新 HEAD 以指向更新後歷史的頂端,而不影響任何分支。但更新或查詢有關當前分支資訊的指令(例如設定當前分支與哪個遠端追蹤分支集成的gitbranch--set-upstream-to)顯然無法運作,因為在此狀態下沒有(真正的)當前分支可供查詢。 - 目錄 (directory)
-
您使用 "ls" 指令所看到的列表 :-)
- 髒 (dirty)
- 邪惡合併 (evil merge)
- 快轉 (fast-forward)
-
快轉是一種特殊類型的 合併,當您擁有一個 修訂版本,並且正在「合併」另一個恰好是您當前修訂版本後代之 分支 的變更時發生。在這種情況下,您不會建立一個新的 合併 提交,而是直接將您的分支更新為指向與您正在合併的分支相同的修訂版本。這種情況經常發生在遠端 儲存庫 的 遠端追蹤分支 上。
- 獲取 (fetch)
-
獲取一個 分支 意味著從遠端 儲存庫 取得該分支的 head 參照,找出本地 物件資料庫 中缺少哪些物件,並一併獲取它們。另見 git-fetch[1]。
- 檔案系統 (file system)
-
Linus Torvalds 最初將 Git 設計為使用者空間的檔案系統,即用於存放檔案與目錄的基礎設施。這確保了 Git 的效率與速度。
- Git 封存檔 (Git archive)
-
儲存庫 的同義詞(針對 arch 使用者)。
- gitfile
-
工作樹根目錄下的一個純文字檔案
.git,它指向作為真正儲存庫的目錄。若要正確使用,請參閱 git-worktree[1] 或 git-submodule[1]。語法請參閱 gitrepository-layout[5]。 - 嫁接 (grafts)
-
嫁接功能使得透過記錄提交的虛假血緣關係資訊,可以將兩條原本不同的開發線連接起來。透過這種方式,您可以讓 Git 假裝一個 提交 所擁有的 父提交 集合,與建立該提交時所記錄的不同。透過
.git/info/grafts檔案進行設定。請注意,嫁接 (grafts) 機制已過時,且在儲存庫之間傳輸物件時可能會導致問題;請參閱 git-replace[1],以了解執行相同操作且更靈活、更強健的系統。
- 雜湊 (hash)
-
在 Git 的上下文中,是 物件名稱 的同義詞。
- head
-
對 分支 頂端 提交 的 命名參照。Heads 儲存在
$GIT_DIR/refs/heads/目錄中的檔案內,除非使用封裝參照 (packed refs)。(參見 git-pack-refs[1]。) - HEAD
-
當前 分支。更詳細地說:您的 工作樹 通常衍生自由 HEAD 所參照之樹的狀態。HEAD 是對您儲存庫中其中一個 heads 的參照,除非使用 分離 HEAD,在該情況下它會直接參照一個任意的提交。
- head 參照 (head ref)
-
head 的同義詞。
- 掛鉤 (hook)
-
在執行多個 Git 指令的正常過程中,會呼叫選用的腳本,允許開發者加入功能或檢查機制。通常,掛鉤允許對指令進行預先驗證並可能中止執行,並允許在操作完成後進行後續通知。掛鉤腳本位於
$GIT_DIR/hooks/目錄中,並透過簡單地移除檔名中的.sample後綴來啟用。在早期版本的 Git 中,您必須使它們具備可執行權限。 - 索引 (index)
-
一個包含統計資訊的檔案集合,其內容儲存為物件。索引是您 工作樹 的已儲存版本。事實上,它還可以包含工作樹的第二個甚至第三個版本,這些版本在 合併 時使用。
- 索引條目 (index entry)
-
關於特定檔案的資訊,儲存在 索引 中。若已開始 合併 但尚未完成(即索引包含該檔案的多個版本),則索引條目可能處於「未合併」狀態。
- master
-
預設的開發 分支。每當您建立一個 Git 儲存庫 時,都會建立一個名為「master」的分支,並使其成為活動分支。在大多數情況下,它包含本地開發,但這純粹是基於慣例,並非強制要求。
- 合併 (merge)
-
作為動詞:將另一個 分支(可能來自外部 儲存庫)的內容引入當前分支。若被合併的分支來自不同的儲存庫,則透過先 獲取 遠端分支,然後將結果合併到當前分支來完成。這種獲取與合併操作的結合稱為 拉取 (pull)。合併是由一個自動程序執行的,該程序會識別自分支分歧以來所做的變更,然後將所有這些變更應用在一起。若變更發生衝突,可能需要人工介入才能完成合併。
- 物件 (object)
-
Git 中的儲存單位。它由其內容的 SHA-1 唯一識別。因此,物件一旦建立便無法變更。
- 物件資料庫 (object database)
- 物件識別碼 (object identifier)、物件 ID、oid
-
物件名稱 的同義詞。
- 物件名稱 (object name)
- 物件類型 (object type)
- 章魚合併 (octopus)
- 孤立 (orphan)
-
進入一個尚未存在(即 未出生 的分支)之 分支 的行為。在此類操作後,第一個建立的提交會成為沒有父提交的提交,從而開始一個新的歷史。
- origin
-
預設的上游 儲存庫。大多數專案至少有一個他們所追蹤的上游專案。預設情況下,origin 用於此目的。新的上游更新將被獲取到名為 origin/name-of-upstream-branch 的 遠端追蹤分支 中,您可以使用
gitbranch-r查看這些分支。 - 疊加 (overlay)
-
僅更新並將檔案新增至工作目錄,但不刪除它們,類似於 cp -R 更新目標目錄內容的方式。這是從 索引 或 樹狀物件 檢出檔案時,檢出 的預設模式。相反地,非疊加模式 (no-overlay mode) 也會刪除不在來源中的受追蹤檔案,類似於 rsync --delete。
- 封裝 (pack)
-
已被壓縮成單一檔案的一組物件(為了節省空間或有效地傳輸)。
- 封裝索引 (pack index)
-
一個 封裝檔 中物件的識別碼列表與其他資訊,用於協助有效地存取封裝檔的內容。
- 路徑規格 (pathspec)
-
用於限制 Git 指令中路徑的模式。
路徑規格用於 "git ls-files"、"git ls-tree"、"git add"、"git grep"、"git diff"、"git checkout" 以及許多其他指令的命令列中,以將操作範圍限制在樹或工作樹的某個子集。請參閱各指令的文件,以確定路徑是相對於當前目錄還是頂層目錄。路徑規格語法如下
-
任何路徑皆匹配其自身
-
路徑規格中直到最後一個斜線的部分代表目錄前綴。該路徑規格的範圍僅限於該子樹。
-
路徑規格的其餘部分是路徑名稱剩餘部分的模式。相對於目錄前綴的路徑將使用 fnmatch(3) 與該模式進行匹配;特別是,* 和 ? 可以 匹配目錄分隔符。
例如,Documentation/*.jpg 將匹配 Documentation 子樹中的所有 .jpg 檔案,包括 Documentation/chapter_1/figure_1.jpg。
以冒號
:開頭的路徑規格具有特殊意義。在簡短形式中,前導冒號:後面跟著零個或多個「魔法簽章」(magic signature) 字母(可選擇由另一個冒號:終止),其餘部分則是與路徑匹配的模式。「魔法簽章」由不屬於字母數字、glob、regex 特殊字元或冒號的 ASCII 符號組成。若模式以不屬於「魔法簽章」符號集且不是冒號的字元開頭,則可省略用於終止「魔法簽章」的選用冒號。在長形式中,前導冒號
:後面跟著一個左括號 (、一個以逗號分隔的零個或多個「魔法詞」(magic words) 列表,以及一個右括號 ),其餘部分則是與路徑匹配的模式。僅包含冒號的路徑規格意指「沒有路徑規格」。此形式不應與其他路徑規格結合使用。
- top
-
魔法詞
top(魔法簽章:/)使模式從工作樹的根目錄開始匹配,即使您是在子目錄中執行指令。 - literal
-
模式中的萬用字元(例如
*或 ?)將被視為一般字元。 - icase
-
不區分大小寫的匹配。
- glob
-
Git 將該模式視為 shell glob,適合由帶有 FNM_PATHNAME 旗標的 fnmatch(3) 使用:模式中的萬用字元將不會匹配路徑名稱中的 /。例如,"Documentation/*.html" 匹配 "Documentation/git.html",但不匹配 "Documentation/ppc/ppc.html" 或 "tools/perf/Documentation/perf.html"。
與完整路徑名稱比對的模式中,兩個連續的星號 ("
**") 可能具有特殊含義-
前導的 "
**" 後面跟著一個斜線意指匹配所有目錄。例如,"**/foo" 匹配任何地方的檔案或目錄 "foo"。"**/foo/bar" 匹配任何直接位於目錄 "foo" 下的檔案或目錄 "bar"。 -
尾隨的 "
/**" 匹配內部的所有內容。例如,"abc/**" 匹配目錄 "abc" 內的所有檔案(相對於.gitignore檔案的位置),且深度無限。 -
斜槓後跟兩個連續星號再跟斜槓可比對零個或多個目錄。例如,"
a/**/b" 可比對 "a/b"、"a/x/b"、"a/x/y/b" 等等。 -
其他連續的星號被視為無效。
Glob 魔法與字面魔法不相容。
-
- attr
-
attr:後面接著以空格分隔的「屬性需求」列表,路徑必須滿足所有需求才能被視為匹配;這是對通常非魔法路徑規格模式匹配的補充。請參閱 gitattributes[5]。路徑的每個屬性需求採取以下形式之一
-
"
ATTR" 要求屬性ATTR已設定。 -
"
-ATTR" 要求屬性ATTR未設定。 -
"
ATTR=VALUE" 要求屬性ATTR設定為字串VALUE。 -
"
!ATTR" 要求屬性ATTR未指定。
請注意,當與樹狀物件進行匹配時,屬性仍然是從工作樹中獲取,而不是從給定的樹狀物件中獲取。
-
- exclude
-
在路徑匹配任何非排除路徑規格後,它將透過所有排除路徑規格(魔法簽章:
!或其同義詞^)進行處理。若匹配,該路徑將被忽略。當沒有非排除路徑規格時,排除規則會應用於結果集,就像在沒有任何路徑規格的情況下呼叫一樣。
-
- 父提交 (parent)
-
一個 提交物件 包含開發線上邏輯前驅者(即父提交)的(可能為空)列表。
- 剝離 (peel)
- 鎬 (pickaxe)
-
鎬 一詞是指 diffcore 常式的選項,有助於選擇新增或刪除給定文字字串的變更。使用
--pickaxe-all選項,可以用來檢視引入或移除例如特定一行文字的完整 變更集。請參閱 git-diff[1]。 - 管道 (plumbing)
-
核心 Git 的可愛名稱。
- 瓷器 (porcelain)
-
依賴 核心 Git 的程式與程式套件的可愛名稱,提供對核心 Git 的高層級存取。與 管道 相比,瓷器暴露了更多的 SCM 介面。
- 工作樹特定參照 (per-worktree ref)
-
屬於特定 工作樹 而非全域的參照。目前僅包含 HEAD 以及任何以
refs/bisect/開頭的參照,但未來可能會包含其他不常見的參照。 - 虛擬參照 (pseudoref)
-
一種與普通參照具有不同語義的參照。這些參照可以透過普通 Git 指令讀取,但不能由如 git-update-ref[1] 的指令寫入。
Git 已知曉以下虛擬參照
-
FETCH_HEAD由 git-fetch[1] 或 git-pull[1] 寫入。它可能參照多個物件 ID。每個物件 ID 都附有後設資料,標示其獲取來源與獲取狀態。 -
MERGE_HEAD在解決合併衝突時由 git-merge[1] 寫入。它包含所有正在被合併的提交 ID。
-
- 拉取 (pull)
-
拉取一個 分支 意味著 獲取 並 合併 它。另見 git-pull[1]。
- 推送 (push)
-
推送一個 分支 意味著從遠端 儲存庫 取得該分支的 head 參照,找出它是否為本地 head 參照的祖先;若然,則將所有可從本地 head 參照 到達 且遠端儲存庫中缺少的物件,放入遠端 物件資料庫 中,並更新遠端 head 參照。若遠端 head 不是本地 head 的祖先,則推送失敗。
- 可到達 (reachable)
-
給定 提交 的所有祖先都被稱為可從該提交「到達」。更廣義地說,若我們可以透過一條追蹤 標籤 到其所標籤內容、提交 到其父提交或樹狀物件、以及 樹狀物件 到其所包含之樹狀物件或 blob 的 鏈,從一個物件到達另一個物件,則稱後者是可從前者到達的。
- 可達性點陣圖 (reachability bitmaps)
-
可達性點陣圖儲存關於封裝檔或多重封裝索引 (MIDX) 中一組選定提交的 可達性 資訊,以加速物件搜尋。點陣圖儲存在 ".bitmap" 檔案中。一個儲存庫最多只能有一個點陣圖檔案在使用中。點陣圖檔案可能屬於單一封裝檔,或屬於儲存庫的多重封裝索引(如果存在的話)。
- 重定基底 (rebase)
- 參照 (ref)
-
一個指向 物件名稱 或另一個參照(後者稱為 符號參照)的名稱。為了方便起見,參照在作為 Git 指令的參數使用時,有時可以簡寫;詳情請參閱 gitrevisions[7]。參照儲存在 儲存庫 中。
參照命名空間是層級化的。參照名稱必須以
refs/開頭,或者位於層級結構的根目錄。對於後者,其名稱必須遵循這些規則-
名稱僅由大寫字母或底線組成。
-
名稱以 "
_HEAD" 結尾或等於 "HEAD"。
層級結構的根目錄中有一些不規則的參照不符合這些規則。以下列表是完整的,未來不應再擴充
-
AUTO_MERGE -
BISECT_EXPECTED_REV -
NOTES_MERGE_PARTIAL -
NOTES_MERGE_REF -
MERGE_AUTOSTASH
不同的子層級用於不同目的。例如,
refs/heads/層級用於表示本地分支,而refs/tags/層級用於表示本地標籤。 -
- 參照紀錄 (reflog)
-
參照紀錄顯示參照的本地「歷史」。換句話說,它可以告訴您此儲存庫中的倒數第三個修訂版本是什麼,以及此儲存庫中昨天晚上 9:14 的當前狀態。詳情請參閱 git-reflog[1]。
- 參照規格 (refspec)
-
「參照規格」由 獲取 和 推送 用來描述遠端 參照 與本地參照之間的對映。詳情請參閱 git-fetch[1] 或 git-push[1]。
- 遠端儲存庫 (remote repository)
- 遠端追蹤分支 (remote-tracking branch)
-
一個用於追蹤來自另一個 儲存庫 變更的 參照。它通常看起來像 refs/remotes/foo/bar(表示它追蹤名為 foo 的遠端中名為 bar 的分支),並與已設定之獲取 參照規格 的右側相匹配。遠端追蹤分支不應包含直接修改或有本地提交產生。
- 儲存庫 (repository)
-
一組 參照 與一個包含所有可從該參照 到達 之物件的 物件資料庫,可能伴隨來自一個或多個 瓷器 的後設資料。儲存庫可以透過 替代機制 與其他儲存庫共享物件資料庫。
- 解決 (resolve)
-
手動修復自動 合併 失敗後所留下內容的動作。
- 修訂版本 (revision)
-
提交(名詞)的同義詞。
- 倒帶 (rewind)
- SCM
-
原始碼管理(工具)。
- SHA-1
-
「安全雜湊演算法 1」;一種密碼雜湊函數。在 Git 的上下文中,用作 物件名稱 的同義詞。
- 淺層複製 (shallow clone)
-
大多是 淺層儲存庫 的同義詞,但此片語更明確指出它是透過執行
gitclone--depth=...指令所建立的。 - 淺層儲存庫 (shallow repository)
-
淺層 儲存庫 具有不完整的歷史,其中一些 提交 的 父提交 已被截斷(換句話說,Git 被告知假裝這些提交沒有父提交,即使它們記錄在 提交物件 中)。當您只對專案的近期歷史感興趣,即使上游記錄的真實歷史要大得多時,這有時很有用。淺層儲存庫是透過給予 git-clone[1] 指令
--depth選項來建立的,其歷史隨後可以用 git-fetch[1] 加深。 - 儲存條目 (stash entry)
- 子模組 (submodule)
- 父專案 (superproject)
-
一個在工作樹中將其他專案的儲存庫作為 子模組 進行參照的 儲存庫。父專案知曉(但不持有副本)所包含子模組的提交物件名稱。
- 符號參照 (symref)
-
符號參照:它不包含 SHA-1 ID 本身,而是採用 ref: refs/some/thing 的格式,並且在被參照時,它會遞迴 解參照 到此參照。HEAD 是符號參照的一個主要例子。符號參照可以透過 git-symbolic-ref[1] 指令進行操作。
- 標籤 (tag)
-
refs/tags/命名空間下的一個 參照,它指向任意類型的物件(通常標籤指向 標籤 或 提交物件)。與 head 不同,標籤不會被commit指令更新。Git 標籤與 Lisp 標籤無關(在 Git 的上下文中,後者會被稱為 物件類型)。標籤最常用於標記提交血緣 鏈 中的特定點。 - 標籤物件 (tag object)
-
一個包含指向另一個物件之 參照 的 物件,它可以像 提交物件 一樣包含訊息。它也可以包含一個 (PGP) 簽章,在這種情況下,它被稱為「已簽署標籤物件」。
- 主題分支 (topic branch)
-
一個普通的 Git 分支,由開發者用來標識一個概念性的開發線。由於分支非常容易且成本低廉,因此通常希望擁有多個小分支,每個分支都包含定義非常明確的概念或小的、增量的但相關的變更。
- 拖尾 (trailer)
-
鍵值對後設資料。拖尾可選擇地出現在提交訊息的末尾。在其他社群中可能被稱為「頁尾」(footers) 或「標籤」(tags)。請參閱 git-interpret-trailers[1]。
- 樹狀物件 (tree)
- 樹狀物件 (tree object)
- tree-ish (亦稱 treeish)
-
一個 樹狀物件 或一個可以遞迴 解參照 為樹狀物件的 物件。提交物件 的解參照會產生對應於該 修訂版本 頂層 目錄 的樹狀物件。以下皆為 tree-ish:一個 commit-ish、一個樹狀物件、一個指向樹狀物件的 標籤物件、一個指向指向樹狀物件之標籤物件的標籤物件,依此類推。
- 未出生 (unborn)
-
HEAD 可以指向一個尚不存在且尚未有任何提交的 分支,這樣的分支被稱為未出生的分支。使用者遇到未出生分支的最典型方式是從頭開始建立儲存庫而不從其他地方複製。HEAD 將指向尚待出生的 main(或根據您的設定為 master)分支。此外,某些操作可以透過其 孤立 選項使您進入未出生分支。
- 未合併索引 (unmerged index)
- 無法存取物件 (unreachable object)
- 上游分支 (upstream branch)
-
被合併到該分支(或該分支被重定基底至其上)的預設 分支。它是透過 branch.<name>.remote 和 branch.<name>.merge 來設定的。若 A 的上游分支是 origin/B,有時我們說「A 正在追蹤 origin/B」。
- 工作樹 (working tree)
-
實際檢出檔案的樹。工作樹通常包含 HEAD 提交樹的內容,加上您所做但尚未提交的任何本地變更。
- 工作樹 (worktree)
-
一個儲存庫可以有零個(即裸儲存庫)或一個或多個附加的工作樹。一個「工作樹」包含一個「工作樹」與儲存庫後設資料,其中大多數在單一儲存庫的多個工作樹之間共享,而有些則針對每個工作樹單獨維護(例如索引、HEAD 和諸如 MERGE_HEAD 的虛擬參照、特定工作樹的參照以及特定工作樹的設定檔)。
GIT
git[1] 套件的一部分