設定和配置
獲取和建立專案
基本快照
分支與合併
共享和更新專案
檢查和比較
打補丁
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.48.1 → 2.50.1 無更改
-
2.48.0
2025-01-10
- 2.47.1 → 2.47.3 無更改
-
2.47.0
2024-10-06
- 2.45.1 → 2.46.4 無變化
-
2.45.0
2024-04-29
- 2.44.1 → 2.44.4 無更改
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 無更改
-
2.43.0
2023-11-20
- 2.42.1 → 2.42.4 無更改
-
2.42.0
2023-08-21
- 2.38.1 → 2.41.3 無變化
-
2.38.0
2022-10-02
- 2.35.1 → 2.37.7 無更改
-
2.35.0
2022-01-24
- 2.30.1 → 2.34.8 無更改
-
2.30.0
2020-12-27
- 2.29.1 → 2.29.3 無更改
-
2.29.0
2020-10-19
- 2.28.1 無更改
-
2.28.0
2020-07-27
- 2.27.1 無更改
-
2.27.0
2020-06-01
- 2.21.1 → 2.26.3 無變化
-
2.21.0
2019-02-24
- 2.13.7 → 2.20.5 無變化
-
2.12.5
2017-09-22
- 2.10.5 → 2.11.4 無更改
-
2.9.5
2017-07-30
- 2.5.6 → 2.8.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
概要
git
init
[-q
|--quiet
] [--bare
] [--template=
<template-directory>] [--separate-git-dir
<git-dir>] [--object-format=
<format>] [--ref-format=
<format>] [-b
<branch-name> |--initial-branch=
<branch-name>] [--shared
[=
<permissions>]] [<directory>]
描述
此命令建立一個空的 Git 倉庫,它基本上是一個包含 objects
、refs/heads
、refs/tags
子目錄和模板檔案的 .git
目錄。將建立一個沒有任何提交的初始分支(有關其名稱,請參見下文的 --initial-branch
選項)。
如果設定了 GIT_DIR
環境變數,則它指定一個路徑來作為倉庫的基礎,而不是 ./.git
。
如果透過 GIT_OBJECT_DIRECTORY
環境變數指定了物件儲存目錄,則 sha1 目錄將在其下建立;否則,使用預設的 $GIT_DIR/objects
目錄。
在現有倉庫中執行 git
init
是安全的。它不會覆蓋已存在的內容。重新執行 git
init
的主要原因是為了獲取新新增的模板(或者,如果給定了 --separate-git-dir
,則將倉庫移動到另一個位置)。
選項
從歷史上看,我們曾警告說,當我們引入此類互操作性功能時,SHA-256 倉庫可能需要向後不相容的更改。如今,我們只期望相容的更改。此外,如果此類更改被證明是必要的,則可以預期使用當前 Git 版本建立的 SHA-256 倉庫將能夠被未來版本的 Git 使用,而不會丟失資料。
--ref-format=
<format>-
為倉庫指定給定的引用儲存 <format>。有效值為
-
files
表示帶有 packed-refs 的鬆散檔案。這是預設值。 -
reftable
表示 reftable 格式。此格式是實驗性的,其內部結構可能會更改。
-
--template=
<template-directory>-
指定將使用模板的目錄。(請參閱下面的“模板目錄”部分。)
--separate-git-dir=
<git-dir>-
不將倉庫初始化為
$GIT_DIR
或./.git/
目錄,而是在那裡建立一個文字檔案,其中包含實際倉庫的路徑。此檔案充當一個獨立於檔案系統的 Git 符號連結到倉庫。如果這是重新初始化,倉庫將被移動到指定的路徑。
-b
<branch-name>--initial-branch=
<branch-name>-
為新建立的倉庫中的初始分支使用 <branch-name>。如果未指定,則回退到預設名稱(當前為
master
,但將來可能會更改;該名稱可以透過init.defaultBranch
配置變數進行自定義)。 -
指定 Git 倉庫將由多個使用者共享。這允許屬於同一組的使用者推送到該倉庫。當指定時,配置變數
core.sharedRepository
將被設定,以便$GIT_DIR
下的檔案和目錄以請求的許可權建立。如果未指定,Git 將使用umask
(2) 報告的許可權。該選項可以有以下值,如果未給出值,則預設為
group
umask
false
-
使用
umask
(2) 報告的許可權。當未指定--shared
時的預設值。 group
true
-
使倉庫可被組寫入(以及
g+sx
,因為 git 組可能不是所有使用者的主要組)。這用於放寬通常安全的umask
(2) 值的許可權。請注意,umask 仍然適用於其他許可權位(例如,如果 umask 是0022
,使用group
不會從其他(非組)使用者中移除讀取許可權)。有關如何精確指定倉庫許可權,請參閱0xxx
。 all
world
everybody
-
與
group
相同,但使倉庫對所有使用者可讀。 - <perm>
-
<perm> 是一個以
0
為字首的 3 位八進位制數,每個檔案將具有模式 <perm>。<perm> 將覆蓋使用者的umask
(2) 值(而不僅僅像group
和all
那樣放寬許可權)。0640
將建立一個組可讀但不可組寫入或對其他人不可訪問的倉庫。0660
將建立一個對當前使用者和組可讀寫但對其他人不可訪問的倉庫(目錄和可執行檔案從相應使用者類的r
位獲取它們的x
位)。
預設情況下,共享倉庫中啟用了配置標誌 receive.denyNonFastForwards
,這樣您就不能強制執行非快進式推送。
如果您提供一個 <directory>,該命令將在其中執行。如果此目錄不存在,它將被建立。
模板目錄
模板目錄中名稱不以點開頭的的檔案和目錄將在 $GIT_DIR
建立後複製到其中。
模板目錄將是以下之一(按順序)
-
與
--template
選項一起給出的引數; -
$GIT_TEMPLATE_DIR
環境變數的內容; -
init.templateDir
配置變數;或者 -
預設模板目錄:
/usr/share/git-core/templates
。
預設模板目錄包含一些目錄結構、建議的“排除模式”(參見 gitignore[5])和示例鉤子檔案。
示例鉤子預設都是停用的。要啟用其中一個示例鉤子,請透過移除其 .sample
字尾來重新命名它。
有關鉤子執行的更多通用資訊,請參閱 githooks[5]。
配置
本節中以下所有內容均從 git-config[1] 文件中選擇性地包含。內容與彼處相同:
init.templateDir
-
指定將從哪個目錄複製模板。
init.defaultBranch
-
允許覆蓋預設分支名稱,例如在初始化新倉庫時。
init.defaultObjectFormat
-
允許覆蓋新倉庫的預設物件格式。請參閱 git-init[1] 中的
--object-format=
。命令列選項和GIT_DEFAULT_HASH
環境變數都優先於此配置。 init.defaultRefFormat
-
允許覆蓋新倉庫的預設引用儲存格式。請參閱 git-init[1] 中的
--ref-format=
。命令列選項和GIT_DEFAULT_REF_FORMAT
環境變數都優先於此配置。