?
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
git-init - 創(chuàng)建一個(gè)空的 Git 倉(cāng)庫(kù)或重新初始化一個(gè)現(xiàn)有倉(cāng)庫(kù)
git init [-q | --quiet] [--bare] [--template=<template_directory>] [--separate-git-dir <git dir>] [--shared[=<permissions>]] [directory]
此命令創(chuàng)建一個(gè)空的 Git 倉(cāng)庫(kù)-基本上是一個(gè).git
與子目錄的目錄objects
,refs/heads
,refs/tags
,和模板文件。HEAD
還創(chuàng)建了引用主分支的 HEAD 的初始文件。
如果$GIT_DIR
設(shè)置了環(huán)境變量,那么它將指定一個(gè)要使用的路徑,而不是./.git
存儲(chǔ)庫(kù)的基礎(chǔ)。
如果通過$GIT_OBJECT_DIRECTORY
環(huán)境變量指定了對(duì)象存儲(chǔ)目錄,則在下面創(chuàng)建sha1目錄 - 否則使用默認(rèn)$GIT_DIR/objects
目錄。
在現(xiàn)有的存儲(chǔ)庫(kù)中運(yùn)行是git init
安全的。它不會(huì)覆蓋已經(jīng)存在的東西。重新運(yùn)行git init
的主要原因是拾取新添加的模板(或者如果給出--separate-git-dir,則將存儲(chǔ)庫(kù)移動(dòng)到另一個(gè)位置)。
-q --quiet
僅打印錯(cuò)誤和警告消息;所有其他輸出將被抑制。
--bare
創(chuàng)建一個(gè)裸倉(cāng)庫(kù)。如果GIT_DIR
未設(shè)置環(huán)境,則將其設(shè)置為當(dāng)前工作目錄。
--template=<template_directory>
指定將使用模板的目錄。(請(qǐng)參閱下面的“模板目錄”部分。)
--separate-git-dir=<git dir>
相反,初始化存儲(chǔ)庫(kù)作為目錄之一$GIT_DIR
或者./.git/
,創(chuàng)建一個(gè)包含路徑的實(shí)際存儲(chǔ)庫(kù)的文本文件存在。該文件充當(dāng)文件系統(tǒng)不可知的 Git 與存儲(chǔ)庫(kù)的符號(hào)鏈接。
如果這是重新初始化,存儲(chǔ)庫(kù)將被移動(dòng)到指定的路徑。
--shared=(false|true|umask|group|all|world|everybody|0xxx)
指定 Git 存儲(chǔ)庫(kù)將在多個(gè)用戶之間共享。這允許屬于同一組的用戶推入該存儲(chǔ)庫(kù)。指定時(shí),將設(shè)置配置變量“core.sharedRepository”,以便$GIT_DIR
使用請(qǐng)求的權(quán)限創(chuàng)建下面的文件和目錄。未指定時(shí),Git 將使用 umask(2)報(bào)告的權(quán)限。
該選項(xiàng)可以具有以下值,如果group
沒有給定的值,則默認(rèn)為:
umask (or false)
使用由 umask(2)報(bào)告的權(quán)限。--shared
未指定時(shí)的默認(rèn)值。
group (or true)
使存儲(chǔ)庫(kù)組可寫,(和g + sx,因?yàn)?git 組可能不是所有用戶的主要組)。這用于放寬其他安全的 umask(2)值的權(quán)限。請(qǐng)注意,umask 仍然適用于其他權(quán)限位(例如,如果 umask 是0022
,使用group
不會(huì)從其他(非組)用戶刪除讀取權(quán)限)。請(qǐng)參閱0xxx
如何準(zhǔn)確指定存儲(chǔ)庫(kù)權(quán)限。
all (or world or everybody)
與此相同group
,但使存儲(chǔ)庫(kù)可供所有用戶閱讀。
0xxx
0xxx
是一個(gè)八進(jìn)制數(shù),每個(gè)文件都有模式0xxx
。0xxx
將覆蓋用戶的
umask(2)的值(不僅是松開的權(quán)限group
和all
一樣)。0640
將創(chuàng)建一個(gè)群組可讀的存儲(chǔ)庫(kù),但不能對(duì)其他群組進(jìn)行寫入或訪問。0660
將創(chuàng)建一個(gè)對(duì)當(dāng)前用戶和組可讀可寫的回購(gòu),但其他人無(wú)法訪問。
默認(rèn)情況下,配置標(biāo)志receive.denyNonFastForwards
在共享存儲(chǔ)庫(kù)中啟用,以便您不能強(qiáng)制進(jìn)行非快速轉(zhuǎn)發(fā)。
如果你提供了一個(gè)directory
,那么這個(gè)命令就在里面運(yùn)行。如果這個(gè)目錄不存在,它將被創(chuàng)建。
模板目錄中名稱不以點(diǎn)開頭的文件和目錄將$GIT_DIR
在其創(chuàng)建后復(fù)制到其中。
模板目錄將是以下內(nèi)容之一(按順序):
與--template
選項(xiàng)一起提供的論據(jù);
$GIT_TEMPLATE_DIR
環(huán)境變量的內(nèi)容;
所述init.templateDir
配置變量;要么
默認(rèn)模板目錄:/usr/share/git-core/templates
。
默認(rèn)模板目錄包含一些目錄結(jié)構(gòu),建議使用“排除模式”(參見 gitignore [5])和示例鉤子文件。
示例鉤子默認(rèn)情況下都是禁用的,要啟用其中一個(gè)示例鉤子,可以通過刪除其.sample
后綴來(lái)對(duì)其進(jìn)行重命名。
有關(guān)鉤子執(zhí)行的更多信息,請(qǐng)參閱 githooks [5]。
為現(xiàn)有的代碼庫(kù)啟動(dòng)一個(gè)新的 Git 存儲(chǔ)庫(kù)
$ cd /path/to/my/codebase $ git init (1)$ git add . (2)$ git commit (3)
1. 創(chuàng)建一個(gè)/path/to/my/codebase/.git目錄。
2. 將所有現(xiàn)有文件添加到索引。
3. 將原始狀態(tài)記錄為歷史記錄中的第一個(gè)提交。