第4章 最初のリポジトリを作る¶
この章で学ぶこと¶
作業ディレクトリの作成と
git init.gitディレクトリの存在git statusの読み方README.mdを作って空でないリポジトリにする
動機・背景¶
ここまでの章で Git と GitHub CLI のインストール・設定が完了しました。いよいよ実際に手を動かして、最初の Git リポジトリを作ってみましょう。
Git でスクリプトやファイルを管理するには、まず git init というコマンドで「このディレクトリを Git のリポジトリとして扱ってください」と宣言する必要があります。逆に言うと、git init を実行していないディレクトリでは、いくらファイルを変更しても Git は何も記録してくれません。最初の一歩はとても簡単なので、肩の力を抜いて進めていきましょう。
練習用ディレクトリを作る¶
まずは練習用のディレクトリを作って、そこに移動します。
cd ~
mkdir my-scripts
cd my-scripts
注釈
PowerShell の ~ はホームディレクトリ (例: C:\Users\<あなた>) を指します。
git init を実行する¶
ディレクトリに入ったら、いよいよ git init を実行します。
git init
期待出力:
Initialized empty Git repository in C:/Users/<あなた>/my-scripts/.git/
注釈
出力に Initial branch: main が表示されない場合、Git のバージョンが古いか init.defaultBranch=main が未設定の可能性があります。第 3 章「Windows 固有の設定」で git config --global init.defaultBranch main を設定している前提です。
たった 1 行の出力ですが、これでこのディレクトリは「Git リポジトリ」になりました。なお、同じディレクトリで再度 git init を実行しても害はありませんが、メッセージが Reinitialized existing Git repository in ... に変わります。
.git ディレクトリを覗く¶
git init を実行すると、ディレクトリの中に .git という隠しフォルダが作られます。確認してみましょう。
Get-ChildItem -Force
-Force を付けることで、. で始まる隠しファイル・フォルダも一覧に表示されます。.git フォルダが見えていれば成功です。
警告
.git フォルダの中身を直接編集してはいけません。Git の内部状態が壊れます。Git コマンドを通じて操作するのが原則です。
エクスプローラで隠しファイルを表示する¶
ターミナルだけでなく、エクスプローラ (ファイル管理ツール) からも .git フォルダを確認できるようにしておくと、なにかと便利です。エクスプローラの「表示」メニューから「隠しファイル」のチェックを入れてください。これで .git フォルダがグレーがかったアイコンで表示されるようになります。
同じ設定で .gitignore や .gitattributes といったドット始まりの設定ファイルもエクスプローラから見えるようになり、ダブルクリックで編集できるようになります。あとの章で使う場面が出てくるので、ここで一度有効化しておきましょう。
git status を読む¶
リポジトリの「いまの状態」を確認するコマンドが git status です。これからもっとも頻繁に打つコマンドになります。
git status
期待出力:
On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)
各行の意味は次のとおりです。
On branch main: 現在のブランチNo commits yet: まだコミットなしnothing to commit: 追跡対象の変更がない
README.md を作る¶
まだファイルが何もないので、README.md を 1 つ作ってみます。
注釈
PowerShell の > (リダイレクト) を使うと UTF-16 LE (BOM 付き) で保存され、Git が「バイナリ」と扱ってしまう場合があります。Out-File -Encoding utf8 は PowerShell 5.1 だと UTF-8 BOM 付きになるため、本書では BOM なし UTF-8 を確実に書ける Set-Content -Encoding utf8 を推奨します (PowerShell 5.1 / 7+ の双方で BOM なし)。
ファイル作成方法は OS / シェルで異なるため両方示します:
Set-Content -Encoding utf8 -Path README.md -Value "# My Scripts"
echo "# My Scripts" > README.md
再度 git status¶
ファイルができたところで、もう一度 git status を実行してみましょう。
git status
期待出力:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)
Untracked files のところに README.md が表示されていれば成功です。「Git に存在は認識されたが、まだ追跡対象にはなっていない」という状態を示しています。
Windows のパス区切りについて¶
注釈
PowerShell では \ も / も使えますが、Git の出力やコマンド引数では / を使うのが安全です (git status の出力なども / 区切り)。本書のコマンド例も / で統一します。
ハンズオン課題¶
~/my-scripts以外の場所にもう 1 つ練習用リポジトリをgit initで作ってみるgit statusの出力を全て読み、各行の意味を自分の言葉で説明できるか確認
まとめ¶
git initでディレクトリを Git リポジトリ化する.gitフォルダが Git の本体 (直接編集禁止)git statusでリポジトリの状態を確認する習慣をつける