クリーム色の背景、色付き表示、高コントラスト、大きな文字のほうが読みやすいですか?配色と文字を選ぶと、すべてのページに一度で反映されます。

無料レッスン

.gitignore で Git に無視させる

このレッスンのあとで: .gitignore で、ファイルを Git の外に置くことができる。

55分のレッスンコマンド15件Git と Gitea のラボ:自分専用の Git サーバーでクローン、コミット、プッシュを学ぶ

コミットしてはいけないファイル

プロジェクトのフォルダには、コード以外のものも入っています。ログ、プログラムが作る控え、ときにはパスワードもあります。一度コミットしたパスワードは、clone した人ならだれでも読めます。

.gitignore というファイルで、Git に放っておくファイルを教えます。このレッスンでは、1つ書いて、1つの失敗を直します。

このレッスンのゴール

メモ

.gitignore で、ファイルを Git の外に置くことができる。

大事な言葉

ことばいみれい
無視するファイルをわざと Git の外に置くこと(ignore)
パターン無視するファイルを指す1行*.log
追跡済みすでにコミットに入っていて、Git が見張っている状態
未追跡まだどのコミットにも入っていない状態
秘密パスワードのように、人に見せてはいけない文字列

学生が入力するセルは、このプレビューでは空白です。

パターンが無視するファイルを指す

プロジェクトに .gitignore というファイルを置きます。1行が1つのパターンです。合うファイルは Git が放っておくので、未追跡のままで、新しいファイルとしても出なくなります。

先頭の点も名前の一部です。.gitignore 自体もコミットすると、clone した全員が同じ規則を使えます。

例で見る: 4種類のパターン

パターン無視するもの合う例
`key.txt`名前がぴったり同じファイルkey.txt
`*.log`.log で終わるすべてのファイルtill.log
`build/`フォルダまるごとbuild/out.txt
`!keep.log`例外: このファイルは無視しないkeep.log

学生が入力するセルは、このプレビューでは空白です。

kiosk というリポジトリを作る

コマンド
git init -b main kiosk

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

2つの価格のファイルを作る

コマンド
printf 'コーヒー 300\nお茶 200\n' > kiosk/prices.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

作り物のパスワードのファイルを作る

コマンド
printf 'password=abc123\n' > kiosk/key.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

ログのファイルを作る

コマンド
printf 'レジを開けた\n' > kiosk/till.log

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

価格と鍵を、うっかりステージする

コマンド
git -C kiosk add prices.txt key.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

コミットする

コマンド
git -C kiosk commit -m "価格と鍵を追加"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

無視の一覧を書く

コマンド
printf '*.log\nkey.txt\n' > kiosk/.gitignore

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

Git が無視するものを見る

コマンド
git -C kiosk status --short --ignored

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

どのパターンに合ったか聞く

コマンド
git -C kiosk check-ignore -v till.log

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

無視してもコミットは消えない

Git が無視するのは、まだ追跡していないファイルだけです。key.txt はすでにコミットに入っていて追跡済みなので、新しいパターンは効きません。

追跡をやめるには git rm --cached を使います。--cached は、Git から外し、フォルダには残します。付けないと、ディスクからも消えます。

ファイルのパスワードを書き換える

コマンド
printf 'password=xyz789\n' > kiosk/key.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

今の Git の言い分を見る

コマンド
git -C kiosk status --short

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

鍵の追跡をやめて、ファイルは残す

コマンド
git -C kiosk rm --cached key.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

無視の一覧をステージする

コマンド
git -C kiosk add .gitignore

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

2つの変更をコミットする

コマンド
git -C kiosk commit -m "ログを無視し、key.txt の追跡をやめる"

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

鍵を含むコミットをすべて探す

コマンド
git -C kiosk --no-pager log --format=%s -- key.txt

ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。

よくある間違い

注意

ファイルを無視したり Git から外したりすれば、永久に隠れると思いがちです。隠れません。最初のコミットに古いパスワードが残り、履歴を持つ人は読めます。コミットした秘密は漏れたものと考え、パスワードを変えます。

このラボとソースについて: Git と Gitea のラボ:自分専用の Git サーバーでクローン、コミット、プッシュを学ぶ

授業で使いますか?このモジュールを学生に割り当てると、教員用ガイド、自動採点つきの課題、学生ごとのラボを使えます。