SYNOPSIS
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>]
DESCRIPTION
このコマンドは、空のGitリポジトリを作成します。基本的には、 objects
と refs/heads
と refs/tags
と テンプレートファイルのためのサブディレクトリを持つ .git
ディレクトリです。コミットのない初期ブランチが作成されます(初期ブランチの名前については、以下の --initial-branch
オプションを参照してください)。
GIT_DIR
環境変数が設定されている場合、リポジトリのベースに ./.git
の代わりに、 GIT_DIR
環境変数で指定されたパスを使います。
オブジェクト・ストレージ・ディレクトリが GIT_OBJECT_DIRECTORY
環境変数を介して指定されている場合、 sha1 ディレクトリがその下に作成されます。 それ以外の場合は、 デフォルトの $GIT_DIR/objects
ディレクトリが使用されます。
既存のリポジトリで「git init」を実行しても安全です。すでに存在するものを上書きすることはありません。「git init」を再実行する主な理由は、新しく追加されたテンプレートを取得することです(または、 --separate-git-dir
が指定されている場合はリポジトリを別の場所に移動します)。
OPTIONS
-
-q
-
--quiet
-
エラーメッセージと警告メッセージのみを出力します。 他のすべての出力は抑制されます。
-
--bare
-
ベア(bare)リポジトリを作成します。
GIT_DIR
環境変数が設定されていない場合は、現在の作業ディレクトリに設定されます。 -
--object-format=
<format> -
リポジトリに設定するオブジェクト形式(ハッシュ・アルゴリズム)を <format> に指定します。 有効な値は「sha1」および、(有効な場合、)「sha256」です。「sha1」がデフォルトです。
注意: 現時点では、 SHA-256 リポジトリと SHA-1 リポジトリの間に相互運用性はありません(no interoperability)。
歴史的に、 作者達は、 このような相互運用性機能を導入した場合、 SHA-256 リポジトリには下位互換性のない変更が必要になる可能性があると警告してきました。 今日期待されているのは、 互換性のある変更のみです。 更にいうと、 そのような変更が必要であることが判明した場合にも、 現在の Git で作成された SHA-256 リポジトリは、 データを失うことなく将来のバージョンの Git で使用できるようになることが期待できます。
-
--ref-format=
<format> -
リポジトリの ref 格納形式を <format> で指定します。 有効な値は以下のとおりです:
-
files
は、 パックされた ref を持つ緩いファイル(loose files)用です。 これがデフォルトです。 -
reftable
は reftable 形式です。 この形式は実験的なものであり、 その内部は変更される可能性があります。
-
-
--template=
<template-directory> -
テンプレートが使用するディレクトリを指定します。 (下記「TEMPLATE DIRECTORY」セクション参照)
-
--separate-git-dir=
<git-dir> -
リポジトリをディレクトリとして
$GIT_DIR
または./.git/
に初期化する代わりに、実際のリポジトリへのパスを含むテキストファイルをそこに作成します。 このファイルは、ファイルシステムに依存しない、リポジトリへのGitシンボリックリンクとして機能します。これが再初期化の場合、リポジトリは指定されたパスに移動されます。
-
-b
<branch-name> -
--initial-branch=
<branch-name> -
新しく作成されたリポジトリの最初のブランチには、 <branch-name> を使用します。 指定しない場合は、 デフォルトの名前にフォールバックします(現在は
master
ですが、将来変更される可能性があります。名前はinit.defaultBranch
構成変数を使用してカスタマイズできます)。 -
--shared
[=
(false
|true
|umask
|group
|all
|world
|everybody
|<perm>)] -
Gitリポジトリを複数のユーザー間で共有することを指定します。 これにより、同じグループに属するユーザーがそのリポジトリにプッシュできるようになります。 指定すると、構成変数
core.sharedRepository
が設定され、$GIT_DIR
の下のファイルとディレクトリが要求された権限で作成されます。 指定しない場合、Gitは umask(2) によって報告された権限を使用します。オプションには以下の値を指定できます。値が指定されていない場合、デフォルトで
group
になります。-
umask
-
false
-
umask(2) によって報告されたアクセス許可を使用します。
--shared
が指定されていない場合のデフォルトです。 -
group
-
true
-
リポジトリをグループ書き込み可能にします(git グループがすべてのユーザーのプライマリグ・ループではない可能性があるため、
g+sx
です)。 これは、 そうしないでいれば安全な umask(2) 値の権限を緩めるために使用されます。 注意: umaskは他の権限ビットにも適用されることに注意してください(たとえば、umaskが0022
の場合、group
を使用しても他の(グループ以外の)ユーザーからの読み取り権限は削除されません)。 リポジトリの権限を正確に指定する方法については、 <perm> を参照してください。 -
all
-
world
-
everybody
-
group
と同じですが、すべてのユーザーからリポジトリを読めるようにします。 - <perm>
-
各ファイルはモード <perm> を持ち、 <perm> は、 (訳注:C言語流に、)
0
が先頭に付いた 3 桁の 8 進数です。 <perm> は、ユーザーの umask(2) 値を上書きします(group
やall
のように許可を緩めるだけではありません)。0640
は、 グループで読み取り可能であるが、 グループで書き込み可能でなく、 他のユーザーがアクセスできないリポジトリを作成します。0660
は、現在のユーザーとグループが読み書きできるが、 他のユーザーがアクセスできないリポジトリを作成します(ディレクトリと実行可能ファイルは、ユーザーの対応するクラスのr
ビットからx
ビットを取得します)。
-
デフォルトでは、共有リポジトリ内で、構成フラグ receive.denyNonFastForwards
が有効(ture)になっているため、早送り(fast-forward)以外のプッシュを強制することはできません。
<directory> を指定すると、 コマンドはその内部で実行されます。 指定のディレクトリが存在しない場合は作成されます。
TEMPLATE DIRECTORY
名前がドット(.)で始まらないテンプレートディレクトリ内のファイルとディレクトリは、作成後に $GIT_DIR
にコピーされます。
テンプレートディレクトリは、以下のいずれかになります(この優先順位です):
-
--template
オプションで指定された引数 -
$GIT_TEMPLATE_DIR
環境変数の内容 -
init.templateDir
構成変数 -
デフォルトのテンプレートディレクトリ:
/usr/share/git-core/templates
デフォルトのテンプレートディレクトリには、いくつかのディレクトリ構造、推奨される「除外パターン」(exclude patterns)(gitignore(5) 参照)、およびサンプルフックファイルが含まれています。
サンプルフックはデフォルトですべて無効になっています。 サンプルフックを有効にするには、 .sample
サフィックスを削除して名前を変更します。
フックの実行に関するより一般的な情報については、 githooks(5) を参照してください。
EXAMPLES
- 既存のコードベースの新しいGitリポジトリを開始します
-
$ cd /path/to/my/codebase $ git init <1> $ git add . <2> $ git commit <3>
-
/path/to/my/codebase/.git
ディレクトリを作成します。 -
既存のすべてのファイルをインデックスに追加します。
-
履歴の最初のコミットとして、初期の状態を記録します。
-
CONFIGURATION
このセクションの以下のすべては、 git-config(1) ドキュメントの抜粋です。 内容は git-config(1) ドキュメント にあるものと同一です:
-
init.templateDir
-
テンプレートのコピー元のディレクトリを指定します。
-
init.defaultBranch
-
デフォルトのブランチ名を上書きできます。例えば、新しいリポジトリを初期化するとき。
-
init.defaultObjectFormat
-
新しいリポジトリのデフォルトのオブジェクト形式をオーバーライドできるようにします。 git-init(1) の
--object-format=
を参照してください。 コマンド・ライン・オプションとGIT_DEFAULT_HASH
環境変数の両方とも、 この設定より優先されます。 -
init.defaultRefFormat
-
新しいリポジトリのデフォルトの ref ストレージ形式をオーバーライドできるようにします。 git-init(1) の
--ref-format=
を参照してください。 コマンド・ライン・オプションとGIT_DEFAULT_REF_FORMAT
環境変数の両方とも、 この設定より優先されます。
GIT
Part of the git(1) suite