0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

久々にGit触ったらBareリポジトリがわからんかったのでまとめた件

0
Last updated at Posted at 2026-06-01

Git学習まとめ:Bareリポジトリとコマンドの流れ

どうも、拓田です。
しばらく現場から遠ざかっていたんですが、戻ることになったので勉強しなおしています。

GitHubを使っていきますが、用語は抑えられているものの、詳しい構造の事を忘れていており、
学習を進めていく中でBareリポジトリの事がいまいち理解できていなかったので、
備忘のため、まとめました。

✅Bareリポジトリって正直いまいちわからん!

という方の理解の助けになれば幸いです。


1. リポジトリの種類

通常リポジトリ

  • 実際の作業ファイル(ワークツリー)と履歴の両方を持つ
  • 個人のPC上でコードを書いたり編集したりする場所
  • git addgit commit などの作業を行う場所

Bareリポジトリ

  • ワークツリーもインデックスも持たない
  • コードと履歴をGit独自の圧縮形式で保管している
  • 複数人の作業者が全員 push/pull する中央管理サーバーとして機能する
  • GitHubも内部的にはBareリポジトリで動いている

2. 通常リポジトリとBareリポジトリの内部構造の違い

通常リポジトリの内部構造

通常リポジトリ
├── ワークツリー   ← 実際に編集するファイルが存在する場所
├── インデックス   ← commitの準備をする場所(git addで登録)
└── リポジトリ本体 ← コードと履歴をGit圧縮形式で保管する場所

Bareリポジトリの内部構造

Bareリポジトリ
└── リポジトリ本体のみ ← ワークツリーもインデックスも存在しない

3. コードの保存について

Bareリポジトリにもコードは保存されている。
ただし通常リポジトリとは違い、人間が直接読めるファイル形式ではなく、Gitが圧縮・変換したオブジェクト形式で保存されている。

git checkoutgit clone することで初めて通常のファイルとして取り出せる。

通常リポジトリ Bareリポジトリ
コード 人間が読めるファイルとして存在 Git圧縮形式で存在
履歴 あり あり
ワークツリー あり なし
インデックス あり なし
直接編集 できる できない

4. 作業の流れとコマンド

git add ファイル名          ワークツリー → インデックスに登録
git commit -m "メッセージ"  インデックス → ローカルリポジトリ本体に記録
git push                   ローカルリポジトリ本体 → 中央管理サーバー(GitHub等)に転送

図で見る流れ

【ローカル(通常リポジトリ)】               【GitHub(Bareリポジトリ)】

ワークツリー
    ↓ git add
インデックス
    ↓ git commit
リポジトリ本体              ─── git push ─→  リポジトリ本体

5. まとめ

  • Bareリポジトリは、複数人の変更を集める中央管理サーバー
  • ワークツリーとインデックスがないのは、作業することを想定しておらず、コード管理に特化しているため
  • git addgit Commitコマンドはローカルで完結し、git PushコマンドはBareリポジトリ(GitHub等)へ結果を転送する
  • git addgit commitgit push の流れが基本の作業サイクル
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?