セットアップと設定
プロジェクトの取得と作成
基本的なスナップショット
ブランチとマージ
プロジェクトの共有と更新
検査と比較
パッチ適用
デバッグ
Eメール
外部システム
サーバー管理
ガイド
- gitattributes
- コマンドラインインターフェースの慣例
- 日常の Git
- よくある質問 (FAQ)
- 用語集
- Hooks
- gitignore
- gitmodules
- リビジョン
- サブモジュール
- チュートリアル
- ワークフロー
- すべてのガイド...
管理
Plumbing コマンド
- 2.48.1 → 2.49.0 変更なし
-
2.48.0
2025-01-10
- 2.47.1 → 2.47.2 変更なし
-
2.47.0
2024-10-06
- 2.45.1 → 2.46.3 変更なし
-
2.45.0
2024-04-29
- 2.44.1 → 2.44.3 変更なし
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.6 変更なし
-
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
。これがデフォルトです。 -
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 桁の 8 進数で、各ファイルはモード <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
環境変数の両方がこの設定よりも優先されます。
GIT
git[1] スイートの一部