Gitの基礎 - Gitコマンド
提供: MochiuWiki : SUSE, EC, PCB
概要
initコマンド
initコマンドは、新しいGitリポジトリを作成するために使用する。
リポジトリとは、「ファイルやディレクトリの状態を管理する場所」のことである。
一連のGitコマンドは、Gitリポジトリが管理しているディレクトリ内で使用することができる。
initコマンドを実行すると、現在のディレクトリに.gitディレクトリ(Gitリポジトリ)が作成される。
リポジトリが作成されることにより、Gitコマンドでリポジトリを管理できるようになる。
-q/--quietオプションinitコマンドの実行時に表示されるメッセージを省略する。- ただし、警告とエラーメッセージは表示される。
--bareオプション- ベアリポジトリと呼ばれる特殊なGitリポジトリを作成する。
--bareを使用することで、対象のディレクトリを.gitディレクトリそのものとして扱う。- ベアリポジトリには、実際のディレクトリやファイルを持たないが、.gitディレクトリ内にあるファイルのみを持つ。
- ベアリポジトリはpush先となる集約されるようなリポジトリに対して作成する。
- ベアリポジトリの特徴
- 作業用ディレクトリを持たない。
- 管理用ディレクトリ(リポジトリ)のみを持つ。
- ベアリポジトリでは、現在のディレクトリが.gitディレクトリそのものになる。
- ベアリポジトリの特徴
--shared=<パーミッション>- 作成しようとしているリポジトリは共有リポジトリとして作成される。
- デフォルトではリポジトリは作成したユーザーのみpushできる。
- 複数人で1つのプロジェクトをGitで運用する場合、
--sharedオプションで権限を追加します。 - 指定できるパーミッション :
false、true、umask、group、all、world、everybody、0xxx- false / umask : umaskの値を利用する。
--sharedオプションを使用しない場合も適用される。 - true / group : グループに対して書き込み権限を追加する。
- all / world / everybody : グループに対して書き込み権限を追加して、その他のユーザに対して読み込み権限を追加する。
- 0xxx : 4桁の数値でパーミッションを指定する。
- false / umask : umaskの値を利用する。
- -b <ブランチ名> または --initial-branch=<ブランチ名>
- 初期化時に自動で作成されるブランチ名を指定する。
- デフォルトでは、masterブランチが自動的に作成されるが、それ以外のブランチ名にする場合はこのオプションを使用する。
- デフォルトのブランチ名は環境変数
init.defaultBranchで設定されているため、これを変更することにより、デフォルトのブランチ名を設定することもできる。
--object-format=<ハッシュ関数名>オプション- 例. 使用できるハッシュ関数 : sha1(デフォルト)、sha256
- gitはプロジェクトの状態をオブジェクトで管理している。
- 数種類のオブジェクトがあるが、オブジェクトは全てzlibで圧縮されハッシュ値が生成されている。
--object-formatオプションでは、ハッシュ値のハッシュ関数を指定することができる。
--template=<テンプレートディレクトリ名>オプション- テンプレートとなるディレクトリ(
TEMPLATE DIRECTORY)を指定する。 TEMPLATE DIRECTORYを事前に設定することにより、同じような状態を再現することができる。
- テンプレートとなるディレクトリ(
--separate-git-dir=<Gitリポジトリにするディレクトリ>initコマンドの実行時では.gitディレクトリが自動的に作成されるが、--separate-git-dirオプションを指定することにより、.gitディレクトリの代わりに.gitテキストファイルを作成される。- .gitテキストファイルには<Gitリポジトリにするディレクトリ>で指定されたディレクトリのパスが記載されている。
- .gitディレクトリに作成されていた一連のファイルは全てこの指定したディレクトリに置かれる。
- 既に存在するGitリポジトリ内において、
git init --separate-git-dirを実行すると、Gitリポジトリは<Gitリポジトリにするディレクトリ>に移動する。 - <Gitリポジトリにするディレクトリ>をGitリポジトリとして扱い、<通常のGitディレクトリ>をワーキングディレクトリとして扱うことができる。
- ワーキングディレクトリではGitコマンドが使用できるが、.gitディレクトリが存在しないため、ファイル検索をスムーズに行うことができる。
- また、.gitディレクトリを隠すことにより、誤ってファイルを書き換えてしまうことを防ぐこともできる。
過去のコミットに戻る
例えば、不具合等が発生した時、発生箇所を突き止めるため一時的に過去のコミットに戻りたい場合がある。
また、併せて、最新のコミットに戻す場合も記載する。
まず、操作するブランチを確認する。
git branch # 出力例 * master dev
次に、戻りたいコミット名を確認する。
git log # 出力例 commit 13gsd8g9skegjaosdjgnaewiura7g (HEAD) Author: name <name@google.com> Date: Tue Jul 13 13:00:00 2021 + 0900 commit ckawijsgs863462wijngoasgeni1a Author: name <name@google.com> Date: Tue Jul 13 10:00:00 2021 + 0900
次に、戻りたいコミット名を指定してgit checkoutコマンドを実行する。
コミット名は、先頭から5文字目以降は省略可能である。
git checkout <コミット名>
過去のコミットに戻した状態で、現在のブランチを確認する。
過去のコミットに戻ると、操作しているブランチとは異なるブランチが一時的に作成される。
そのため、最新のコミットに戻す場合は、ブランチを変更すればよい。
git branch # 出力例 * (HEAD detached コミット名) master dev
最新のコミットに戻す。
git checkout <ブランチ名>