日本語 ▾ トピック ▾ 最新バージョン ▾ git-init は 2.48.0 で最終更新されました

名前

git-init - 空の Git リポジトリを作成するか、既存のリポジトリを再初期化する

概要

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 リポジトリ、つまり objectsrefs/headsrefs/tags のサブディレクトリとテンプレートファイルを持つ .git ディレクトリを作成します。コミットのない最初のブランチが作成されます (名前については、以下の --initial-branch オプションを参照してください)。

GIT_DIR 環境変数が設定されている場合、リポジトリのベースとして ./.git の代わりに使用するパスを指定します。

オブジェクトストレージディレクトリが GIT_OBJECT_DIRECTORY 環境変数で指定されている場合、その下に sha1 ディレクトリが作成されます。それ以外の場合は、デフォルトの $GIT_DIR/objects ディレクトリが使用されます。

既存のリポジトリで git init を実行しても安全です。すでに存在するものが上書きされることはありません。git init を再実行する主な理由は、新しく追加されたテンプレートを適用するためです (または、--separate-git-dir が指定されている場合は、リポジトリを別の場所に移動するためです)。

オプション

-q
--quiet

エラーと警告メッセージのみを出力します。その他の出力はすべて抑制されます。

--bare

ベアリポジトリを作成します。GIT_DIR 環境が設定されていない場合、現在の作業ディレクトリに設定されます。

--object-format=<format>

リポジトリの指定されたオブジェクト <format> (ハッシュアルゴリズム) を指定します。有効な値は sha1 および (有効な場合) sha256 です。sha1 がデフォルトです。

注: 現在、SHA-256リポジトリとSHA-1リポジトリの間には相互運用性はありません。

歴史的に、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 設定変数でカスタマイズできます) にフォールバックします。

--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 を使用しても、他の (非グループ) ユーザーから読み取り権限は削除されません)。リポジトリのアクセス許可を正確に指定する方法については 0xxx を参照してください。

all
world
everybody

group と同じですが、リポジトリをすべてのユーザーが読み取り可能にします。

<perm>

<perm>0 で始まる 3 桁の 8 進数で、各ファイルはモード <perm> を持ちます。<perm> はユーザーの umask(2) 値を上書きします (そして、groupall のようにアクセス許可を緩めるだけではありません)。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 リポジトリを開始する
$ cd /path/to/my/codebase
$ git init      (1)
$ git add .     (2)
$ git commit    (3)
  1. /path/to/my/codebase/.git ディレクトリを作成します。

  2. 既存のすべてのファイルをインデックスに追加します。

  3. 最初のコミットとして元の状態を履歴に記録します。

設定

このセクションのこの行より下のすべての内容は、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 環境変数の両方がこの設定よりも優先されます。

GIT

git[1]スイートの一部

scroll-to-top