SYNOPSIS
git init [-q | --quiet] [--bare] [--template=<template_directory>] [--separate-git-dir <git dir>] [--object-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>
-
リポジトリに設定するブジェクト形式(ハッシュアルゴリズム)を指定します。 有効な値は「sha1」および、(有効な場合、)「sha256」です。「sha1」がデフォルトです。
このオプションは実験的なものです! SHA-256のサポートは実験的なものであり、まだ初期段階です。 SHA-256リポジトリは、通常、「通常の」SHA-1リポジトリと作業を共有できません。 たとえば、SHA-256リポジトリに関連するGit内部ファイル形式は、下位互換性のない方法で変更される可能性があると想定する必要があります。テスト目的でのみ
--object-format=sha256
を使用してください。 -
--template=<template_directory>
-
テンプレートが使用するディレクトリを指定します。 (以下の「TEMPLATE DIRECTORY」セクションを参照してください。)
-
--separate-git-dir=<git dir>
-
リポジトリをディレクトリとして
$GIT_DIR
または./.git/
に初期化する代わりに、実際のリポジトリへのパスを含むテキストファイルをそこに作成します。 このファイルは、ファイルシステムに依存しない、リポジトリへのGitシンボリックリンクとして機能します。これが再初期化の場合、リポジトリは指定されたパスに移動されます。
-
-b <branch-name>
-
--initial-branch=<branch-name>
-
新しく作成されたリポジトリの最初のブランチには、指定された名前を使用します。 指定しない場合は、デフォルト名にフォールバックします(現在は
master
ですが、将来変更される可能性があります。名前はinit.defaultBranch
構成変数を使用してカスタマイズできます)。 -
--shared[=(false|true|umask|group|all|world|everybody|0xxx)]
-
Gitリポジトリを複数のユーザー間で共有することを指定します。 これにより、同じグループに属するユーザーがそのリポジトリにプッシュできるようになります。 指定すると、構成変数
core.sharedRepository
が設定され、$GIT_DIR
の下のファイルとディレクトリが要求された権限で作成されます。 指定しない場合、Gitは umask(2) によって報告された権限を使用します。オプションには以下の値を指定できます。値が指定されていない場合、デフォルトで
group
になります。-
umask
(orfalse
) -
umask(2) によって報告されたアクセス許可を使用します。
--shared
が指定されていない場合のデフォルトです。 -
group
(ortrue
) -
リポジトリをグループ書き込み可能にします(gitグループがすべてのユーザーのプライマリグループではない可能性があるため、
g+sx
)。 これは、そうしないでいれば安全な umask(2) 値の権限を緩めるために使用されます。 注意: umaskは他の権限ビットにも適用されることに注意してください(たとえば、umaskが0022
の場合、group
を使用しても他の(グループ以外の)ユーザーからの読み取り権限は削除されません)。 リポジトリの権限を正確に指定する方法については、0xxx
を参照してください。 -
all
(またはworld
またはeverybody
) -
group
と同じですが、すべてのユーザーからリポジトリを読めるようにします。 -
0xxx
-
0xxx
は8進数で、各ファイルのモードは0xxx
になります。0xxx
はユーザーのumask(2) 値をオーバーライドします(group
やall
のように権限を緩めるだけではありません)。0640
ならば、グループで読み取り可能であるが、グループで書き込み可能または他のユーザーがアクセスできないリポジトリを作成します。0660
ならば、現在のユーザーとグループには読み取りと書き込みが可能ですが、他のユーザーにはアクセスできないリポジトリを作成します。
-
デフォルトでは、共有リポジトリ内で、構成フラグ 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 ディレクトリを作成します。
-
既存のすべてのファイルをインデックスに追加します。
-
履歴の最初のコミットとして、初期の状態を記録します。
-
GIT
Part of the git(1) suite