Git 底層命令 (Plumbing) 和高層命令 (Porcelain)

2018-09-27 15:52 更新

本書講解了使用checkout, branch, remote 等共約 30 個(gè) Git 命令。然而由于 Git 一開始被設(shè)計(jì)成供 VCS 使用的工具集而不是一整套用戶友好的 VCS,它還包含了許多底層命令,這些命令用于以 UNIX 風(fēng)格使用或由腳本調(diào)用。這些命令一般被稱為 "plumbing" 命令(底層命令),其他的更友好的命令則被稱為 "porcelain" 命令(高層命令)。

本書前八章主要專門討論高層命令。本章將主要討論底層命令以理解 Git 的內(nèi)部工作機(jī)制、演示 Git 如何及為何要以這種方式工作。這些命令主要不是用來從命令行手工使用的,更多的是用來為其他工具和自定義腳本服務(wù)的。

當(dāng)你在一個(gè)新目錄或已有目錄內(nèi)執(zhí)行 git init 時(shí),Git會(huì)創(chuàng)建一個(gè) .git 目錄,幾乎所有 Git 存儲(chǔ)和操作的內(nèi)容都位于該目錄下。如果你要備份或復(fù)制一個(gè)庫(kù),基本上將這一目錄拷貝至其他地方就可以了。本章基本上都討論該目錄下的內(nèi)容。該目錄結(jié)構(gòu)如下:

$ ls
HEAD
branches/
config
description
hooks/
index
info/
objects/
refs/

該目錄下有可能還有其他文件,但這是一個(gè)全新的git init生成的庫(kù),所以默認(rèn)情況下這些就是你能看到的結(jié)構(gòu)。新版本的 Git 不再使用 branches 目錄,description 文件僅供 GitWeb 程序使用,所以不用關(guān)心這些內(nèi)容。config 文件包含了項(xiàng)目特有的配置選項(xiàng),info 目錄保存了一份不希望在 .gitignore 文件中管理的忽略模式 (ignored patterns) 的全局可執(zhí)行文件。hooks 目錄保存了第七章詳細(xì)介紹了的客戶端或服務(wù)端鉤子腳本。

另外還有四個(gè)重要的文件或目錄:HEADindex 文件,objects及 refs 目錄。這些是 Git 的核心部分。objects 目錄存儲(chǔ)所有數(shù)據(jù)內(nèi)容,refs 目錄存儲(chǔ)指向數(shù)據(jù) (分支) 的提交對(duì)象的指針,HEAD 文件指向當(dāng)前分支,index 文件保存了暫存區(qū)域信息。馬上你將詳細(xì)了解 Git 是如何操縱這些內(nèi)容的。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)