W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
本書旨在討論如何通過?checkout
、branch
、remote
?等大約 30 個諸如此類動詞形式的命令來玩轉(zhuǎn) Git。 然而,由于 Git 最初是一套面向版本控制系統(tǒng)的工具集,而不是一個完整的、用戶友好的版本控制系統(tǒng),所以它還包含了一部分用于完成底層工作的命令。 這些命令被設(shè)計成能以 UNIX 命令行的風(fēng)格連接在一起,抑或藉由腳本調(diào)用,來完成工作。 這部分命令一般被稱作“底層(plumbing)”命令,而那些更友好的命令則被稱作“高層(porcelain)”命令。
本書前九章專注于探討高層命令。 然而在本章,我們將主要面對底層命令。 因?yàn)?,底層命令得以讓你窺探 Git 內(nèi)部的工作機(jī)制,也有助于說明 Git 是如何完成工作的,以及它為何如此運(yùn)作。 多數(shù)底層命令并不面向最終用戶:它們更適合作為新命令和自定義腳本的組成部分。
當(dāng)在一個新目錄或已有目錄執(zhí)行?git init
?時,Git 會創(chuàng)建一個?.git
?目錄。 這個目錄包含了幾乎所有 Git 存儲和操作的對象。 如若想備份或復(fù)制一個版本庫,只需把這個目錄拷貝至另一處即可。 本章探討的所有內(nèi)容,均位于這個目錄內(nèi)。 該目錄的結(jié)構(gòu)如下所示:
$ ls -F1
HEAD
config*
description
hooks/
info/
objects/
refs/
該目錄下可能還會包含其他文件,不過對于一個全新的?git init
?版本庫,這將是你看到的默認(rèn)結(jié)構(gòu)。?description
?文件僅供 GitWeb 程序使用,我們無需關(guān)心。?config
?文件包含項(xiàng)目特有的配置選項(xiàng)。?info
?目錄包含一個全局性排除(global exclude)文件,用以放置那些不希望被記錄在 .gitignore 文件中的忽略模式(ignored patterns)。?hooks
?目錄包含客戶端或服務(wù)端的鉤子腳本(hook scripts),在?Git 鉤子?中這部分話題已被詳細(xì)探討過。
剩下的四個條目很重要:HEAD
?文件、(尚待創(chuàng)建的)index
?文件,和?objects
?目錄、refs
目錄。 這些條目是 Git 的核心組成部分。?objects
?目錄存儲所有數(shù)據(jù)內(nèi)容;refs
?目錄存儲指向數(shù)據(jù)(分支)的提交對象的指針;HEAD
?文件指示目前被檢出的分支;index
?文件保存暫存區(qū)信息。 我們將詳細(xì)地逐一檢視這四部分,以期理解 Git 是如何運(yùn)轉(zhuǎn)的。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: