こんにちは、かつコーチです。
前回の記事で、Gitのインストールと初期設定を済ませました。
いよいよ今回から、実際にGitでプロジェクトを管理する第一歩として、リポジトリとgit initコマンドについて解説します。
リポジトリとは?
作業フォルダ全体の記録帳
リポジトリ(英語で「貯蔵庫」の意味)とは、Gitが変更履歴を管理する対象となる、プロジェクトのフォルダそのものを指します。
イメージとしては、作業フォルダ全体の記録帳を思い浮かべてください。
1冊のノートに「今日は何をしたか」を書き留めていくように、リポジトリという単位でフォルダ内のファイルの変更を1つの記録帳にまとめて記録していきます。
前回解説したgit configが「記帳する人の名前を登録する受付」だとすれば、リポジトリは「その人が記帳していくノートそのもの」だとイメージするとつながりやすいです。
なぜリポジトリという単位で管理するのか
Gitは、パソコン内のすべてのファイルを無条件に管理するわけではありません。
「このフォルダの中身を管理対象にする」と明示的に指定したフォルダだけが、リポジトリとして履歴管理の対象になります。
プロジェクトごとにリポジトリを分けることで、Aプロジェクトの変更履歴とBプロジェクトの変更履歴が混ざってしまう事態を防げます。
git initでリポジトリを作る
基本の手順
あるフォルダをリポジトリにするには、そのフォルダの中でgit initコマンドを実行します。
mkdir my-project
cd my-project
git init
実行すると、以下のようなメッセージが表示されます。
Initialized empty Git repository in /path/to/my-project/.git/
このメッセージが表示されれば、そのフォルダはGitの管理下に置かれ、リポジトリとして機能し始めたことを意味します。
.gitフォルダの中身と注意点
git initを実行すると、フォルダの中に.gitという隠しフォルダが作られます。
この.gitフォルダの中に、変更履歴などGitが管理するすべての情報が保存されています。
.gitフォルダは基本的に自分で中身を編集する必要はありませんが、うっかり削除してしまうと、そのリポジトリの履歴がすべて失われてしまうので注意してください。
よくあるつまずきポイント
Before/After:意図しない場所でinitしてしまう
私が初心者だった頃、うっかりホームディレクトリ(ユーザーのトップフォルダ)でgit initを実行してしまい、パソコン内のほぼすべてのフォルダがGitの管理対象になりかけたことがあります。
git statusを実行したときに、見覚えのない大量のファイルが表示されて、初めて間違いに気づきました。
❌ Before:cdでどこにいるか確認せずにgit initを実行する
✅ After:pwd(現在のフォルダを確認するコマンド)で場所を確認してからgit initを実行する
pwd
# /Users/katsuhiro/my-project のように、意図したフォルダにいるか確認する
git init
もし間違った場所でリポジトリを作ってしまった場合は、そのフォルダ内の.gitフォルダを削除すれば、リポジトリ化を取り消せます。
二重にinitしてしまうケース
すでにリポジトリになっているフォルダで、もう一度git initを実行しても、Gitはエラーを出さずに「既存のリポジトリを再初期化しました」というメッセージを表示するだけです。
履歴が消えるわけではありませんが、意図せず何度も実行すると混乱の元になるので、git statusで今の状態を確認する習慣をつけておくと安心です。
応用・一歩先の使い方
既存プロジェクトへの追加
すでにファイルがあるフォルダに対しても、git initは問題なく実行できます。
新規プロジェクトだけでなく、途中からGit管理を始めたい既存のプロジェクトにも、同じ手順でリポジトリ化が可能です。
git cloneとの違い(先取り紹介)
git initが「新しく空のリポジトリを作る」コマンドであるのに対し、GitHub編で解説するgit cloneは「すでにあるリポジトリをコピーしてくる」コマンドです。
まずはgit initで、自分の手でリポジトリを作る感覚をつかんでおきましょう。
まとめ
この記事のポイント
- リポジトリは、作業フォルダ全体の変更履歴をまとめた「記録帳」
git initを実行したフォルダが、Gitの管理下に置かれる- 履歴情報は
.gitという隠しフォルダに保存される git initの前にpwdで現在地を確認する習慣が事故防止につながる
次に読むべき記事
- git add・git commitの基本
- git statusとgit diffで変更を確認する
タグ: Git, 初心者向け, 環境構築