Git Init
名前
git-init-
概要
git init [-q | --quiet] [--bare] [--template=<テンプレートディレクトリ>]
[--separate-git-dir <git-dir>] [--object-format=<形式>]
[-b <ブランチ名> | --initial-branch=<ブランチ名>]
[--shared[=<権限>]] [<ディレクトリ>]
このコマンドは空のGitリポジトリを作成します。主に.gitディレクトリを含み、その中にobjects、refs/heads、refs/tagsのサブディレクトリとテンプレートファイルが格納され、初期のコミットなしで新しいブランチが作成されます(ブランチ名は--initial-branchオプションで指定)。
環境変数$GIT_DIRが設定されている場合、それによって指定されたパスが使用され、デフォルトの./.gitではなくなります。また、$GIT_OBJECT_DIRECTORYが設定されている場合、sha1ディレクトリはその下に作成され、そうでなければ$GIT_DIR/objectsが使われます。
既存のリポジトリ上で*git initを実行しても安全です。*既存の内容は上書きされません。再実行する主な目的は、追加された新しいテンプレートを取得するか、--separate-git-dirが指定された場合にリポジトリを別の場所に移動することです。
オプション
--initial-branch 初期ブランチ名
-q --quiet エラーと警告のみを表示し、他の出力は抑制されます。
--bare バーレリポジトリを作成します。GIT_DIRが設定されていない場合、現在の作業ディレクトリになります。
--object-format=<形式> リポジトリのオブジェクト形式(ハッシュアルゴリズム)を指定します。sha1とsha256が有効値です。デフォルトはsha1です。
--template=<テンプレートディレクトリ> 使用するテンプレートディレクトリを指定します。
--separate-git-dir=<git-dir> 既存のGitリポジトリを分離します。
-b <ブランチ名>
--initial-branch=<ブランチ名> 新しいリポジトリにおける初期ブランチ名を指定します。省略時はデフォルト名が使用され、init.defaultBranch構成変数でカスタマイズ可能です。
--shared[=(false|true|umask|group|all|world|everybody|<perm>)] 複数のユーザー間でGitリポジトリを共有するために指定します。同じグループに属するユーザーがプッシュできるようになります。設定時にはcore.sharedRepository構成変数が設定され、要求された権限で$GIT_DIR配下のファイルとディレクトリが作成されます。指定しない場合は、Gitはumask権限を使用します。
例:
$ pwd
/d/VSCode/testinit
## リポジトリ a を初期化
$ git init a
Initialized empty Git repository in D:/VSCode/testinit/a/.git/
$ ls a/.git/
HEAD config description hooks/ info/ objects/ refs/
## -q エラーと警告のみを表示
$ git init a
Reinitialized existing Git repository in D:/VSCode/testinit/a/.git/
$ git init a -q
## バーレリポジトリ b を作成(ディレクトリ内にリポジトリ情報)
$ git init --bare b
Initialized empty Git repository in D:/VSCode/testinit/b/
$ ls b
HEAD config description hooks/ info/ objects/ refs/
## --object-format オブジェクト形式を指定
$ git init --object-format=sha256 a
fatal: attempt to reinitialize repository with different hash
$ git init --object-format=sha256 c
Initialized empty Git repository in D:/VSCode/testinit/c/.git/
$ cat c/.git/config |grep 'objectfo'
objectformat = sha256
## --template=<テンプレートディレクトリ> テンプレートディレクトリを指定
## バーレリポジトリ b にファイルを追加し、それをテンプレートとして a を再初期化
$ echo 'customer template file conent' > b/myself
$ git init a --template=b
$ cat a/.git/myself
customer template file conent
## --separate-git-dir=<git-dir> Gitリポジトリを分離
### 既存の a リポジトリから d に分離されたバーレリポジトリを作成
$ git init --separate-git-dir=d a
$ ls d
HEAD config description hooks/ info/ myself objects/ refs/
## -b <ブランチ名> --initial-branch=<ブランチ名> 初期ブランチ名を指定
$ git init e -b main
Initialized empty Git repository in D:/VSCode/testinit/e/.git/
$ cat e/.git/HEAD
ref: refs/heads/main