リポジトリを作る(git init)

《 Git & GitHub 完全ガイド 目次へ 》

このページで分かること

  • git init でフォルダをリポジトリにできる
  • .git フォルダが何で、なぜ消してはいけないかが分かる
  • git init を実行してはいけない場所が分かる
  • 自分が今リポジトリの中にいるかを確かめられる

第2部の06で、練習用のフォルダ ~/git-practice を作りました。今の時点では、これはまだただのフォルダです。このページでは、このフォルダを Git が履歴を記録できるリポジトリに変えます。


ただのフォルダでは、Git は何もしない

まず、変える前の状態を確かめます。

cd ~/git-practice
git status

# 出力:
# fatal: not a git repository (or any of the parent directories): .git

「リポジトリではない(親のフォルダをたどっても .git が見つからない)」と言われました。Git は、.git という名前のフォルダがある場所だけをリポジトリとして扱います。どのフォルダでも勝手に記録を始めるわけではありません。


git init でリポジトリにする

git init

# 出力:
# Initialized empty Git repository in /Users/taro/git-practice/.git/

「空の Git リポジトリを初期化した」というメッセージです。表示されるパスは、自分のフォルダの場所に読み替えてください。

もう一度 git status を打つと、今度は答えが返ってきます。

git status

# 出力:
# On branch main
#
# No commits yet
#
# nothing to commit (create/copy files and use "git add" to track)

1行目の On branch main は、第2部の06で設定した既定のブランチ名が使われていることを示します。No commits yet は「記録はまだ1つもない」という意味です。リポジトリは作られましたが、中身の履歴は空っぽです。


何が増えたのか:.git フォルダ

git init が実際にしたことは、.git というフォルダを1つ作ったことだけです。名前が . で始まるフォルダは隠しフォルダなので、ls -a(-a は隠しファイルも表示する指定)で確かめます。

ls -a

# 出力:
# .
# ..
# .git

. は今いるフォルダ、.. は1つ上のフォルダを表す記号で、どのフォルダにもあります。増えたのは .git だけです。

git-practice/          ← 作業するフォルダ。ここに自分のファイルを置く
└── .git/              ← リポジトリの本体。履歴と設定がすべてここに入る
    ├── HEAD
    ├── config
    ├── objects/
    ├── refs/
    └── …

ここが Git を理解するうえで大事な点です。「リポジトリ」の実体は .git フォルダで、その外側の git-practice/ は、ファイルを編集するための作業場所にすぎません。これからコミットするたびに、記録は .git の中に積み上がっていきます。

.git の中のファイルを手で書き換えることはありません。それぞれの役割は第3部の20(.git フォルダの中身ツアー)で1つずつ開けて確かめます。今は「履歴は全部ここにある」とだけ覚えておけば十分です。

注意

.git フォルダを消すと、そのフォルダの履歴はすべて失われます。作業中のファイルは残りますが、過去のどの版にも戻れなくなります。ゴミ箱を経由しない rm -rf .git で消した場合、Git の機能で取り戻す方法はありません。
「リポジトリをやめて、ただのフォルダに戻したい」とき以外は触らないでください。

補足

Finder やエクスプローラーでは、初期設定だと .git は見えません。macOS の Finder では command + shift + . で隠しファイルの表示を切り替えられます。見えないから消えた、というわけではありません。


git init を実行してはいけない場所

git init は、今いるフォルダをリポジトリにします。実行する前に、どこにいるかを必ず確かめてください。今いる場所は pwd で表示できます。

pwd

# 出力:
# /Users/taro/git-practice

ホームフォルダで実行しない

いちばん多い事故は、ターミナルを開いた直後のホームフォルダ(~)で git init してしまうことです。ホームフォルダ全体がリポジトリになり、その下にあるすべてのフォルダが「どこかのリポジトリの中」とみなされます。git status を打つたびに、デスクトップや書類フォルダの中身が大量に表示されるようになります。

リポジトリの中に、もう1つ作らない

Git は、今いるフォルダに .git がなければ、親のフォルダを上へたどって探します。そのため、リポジトリの中のサブフォルダでは git init をしなくても Git が使えます。

mkdir notes
cd notes
git status

# 出力:
# On branch main
# …

ここでさらに git init すると、リポジトリの中に別のリポジトリができ、外側のリポジトリからは中身が記録されなくなります。1つのプロジェクトには、いちばん上のフォルダに .git が1つだけ、が原則です。

どのフォルダがリポジトリのいちばん上かは、次のコマンドで確かめられます。

git rev-parse --show-toplevel

# 出力:
# /Users/taro/git-practice

既存のフォルダにも使える

git init は空のフォルダ専用ではありません。すでにファイルが入っているフォルダで実行しても、ファイルは1つも変更・移動されません。.git が増えるだけです。

ただし、この時点ではまだ何も記録されていません。どのファイルを記録するかを選んで、初めて履歴に入ります。その手順は第2部の09で扱います。

補足

リポジトリを手に入れる方法は、もう1つあります。すでにあるリポジトリを履歴ごと丸ごとコピーするクローンで、第6部で扱います。第2〜5部では、git init で作ったリポジトリだけを使います。


よくある疑問

Q. ホームフォルダで git init してしまいました。
A. ホームフォルダにできた .git を消せば元に戻ります。ホームフォルダで ls -a を打ち、.git があることと、それが今作ってしまったものであることを確かめてから、rm -rf ~/.git で消します。

注意

rm -rf は確認なしで完全に消すコマンドです。~/.git の部分を打ち間違えないでください。とくに ~/ と .git の間に空白を入れると、ホームフォルダの中身が消えます。

Q. 同じフォルダで2回 git init するとどうなりますか?
A. Reinitialized existing Git repository(既存のリポジトリを再初期化した)と表示されますが、履歴は消えません。足りないファイルを補うだけです。


まとめ

  • git init は、今いるフォルダに .git フォルダを作り、リポジトリにする
  • リポジトリの実体は .git フォルダ。消すと履歴はすべて失われる
  • Git は、今いるフォルダから親へたどって .git を探す
  • ホームフォルダや、既存のリポジトリの中で git init しない
  • 既存のファイルは git init では何も変わらず、まだ記録もされない

次のページ

08. Gitの3つのエリア ── ファイルは「作業する場所」から「記録」へ、どういう経路で入っていくのか。Git を使ううえで最も重要な図を見ます。

→ ガイドの目次に戻る

この記事の最終確認日: 2026年10月

タイトルとURLをコピーしました