Git
日本語 ▾ Topics ▾ Latest version ▾ git-init last updated in 2.43.0

NAME

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

概要

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>]

説明

このコマンドは、空の Git リポジトリを作成します。基本的には、.git ディレクトリに objectsrefs/headsrefs/tags、 テンプレートファイルなどのサブディレクトリを置くことになります。 何もコミットされていない最初のブランチが作成されます (この名前は後述の --initial-branch オプションを参照)。

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

If the object storage directory is specified via the $GIT_OBJECT_DIRECTORY environment variable then the sha1 directories are created underneath; otherwise, the default $GIT_DIR/objects directory is used.

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

オプション

-q
--quiet

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

--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>

Instead of initializing the repository as a directory to either $GIT_DIR or ./.git/, create a text file there containing the path to the actual repository. This file acts as a filesystem-agnostic Git symbolic link to the repository.

If this is a reinitialization, the repository will be moved to the specified path.

-b <branch-name>
--initial-branch=<branch-name>

新しく作成されたリポジトリの最初のブランチに、指定された名前を使用します。 指定されていない場合は、デフォルトの名前に戻ります (現在は master ですが、将来的には変更される可能性があります。名前は init.defaultBranch 設定変数でカスタマイズできます)。

--shared[=(false|true|umask|group|all|world|everybody|<perm>)]

Gitリポジトリを複数のユーザーで共有することを指定します。 これにより、同じグループに属するユーザーがそのリポジトリにプッシュできるようになります。 指定すると、コンフィグ変数 "core.sharedRepository" が設定され、$GIT_DIR 以下のファイルやディレクトリが要求されたパーミッションで作成されるようになります。 指定されていない場合、Gitはumask(2)によって報告されたパーミッションを使用します。

このオプションには以下の値を指定できますが、値が指定されていない場合はデフォルトで「group」が設定されます。

umask (or false)

umask(2)で報告されたパーミッションを使用します。 --shared が指定されていない場合の初期設定です。

group (or true)

Make the repository group-writable, (and g+sx, since the git group may not be the primary group of all users). This is used to loosen the permissions of an otherwise safe umask(2) value. Note that the umask still applies to the other permission bits (e.g. if umask is 0022, using group will not remove read privileges from other (non-group) users). See 0xxx for how to exactly specify the repository permissions.

all (or world or everybody)

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

<perm>

<perm> is a 3-digit octal number prefixed with 0 and each file will have mode <perm>. <perm> will override users' umask(2) value (and not only loosen permissions as group and all do). 0640 will create a repository which is group-readable, but not group-writable or accessible to others. 0660 will create a repo that is readable and writable to the current user and group, but inaccessible to others (directories and executable files get their x bit from the r bit for corresponding classes of users).

デフォルトでは、共有リポジトリでは設定フラグの receive.denyNonFastForwards が有効になっており、高速転送ではないプッシュを強制できません。

ディレクトリ を指定した場合は、その中でコマンドが実行されます。このディレクトリが存在しない場合は、作成されます。

テンプレートディレクトリ

テンプレートディレクトリ内のファイルやディレクトリのうち、名前がドットで始まらないものは、$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. ヒストリの最初のコミットとして、元の状態を記録します。

CONFIGURATION

Warning

Missing ja/includes/cmd-config-section-all.txt

See original version for this content.

Warning

Missing ja/config/init.txt

See original version for this content.

GIT

Part of the git[1] suite

scroll-to-top