メインコンテンツへスキップ
SDETRole
SDETRole

学ぶ / チートシート

テスターのための Git チートシート

開発者と一緒にテストフレームワークを開発するテスターに必要な Git コマンドです。ブランチを切り、コミットし、main に追従し、作業を失わずにミスを取り消し、バグを持ち込んだコミットを特定します。作業内容が失われるコマンドには注記を付けています。

Git 2.40 以降 で確認済み

初期設定

やりたいことコード
ユーザー情報
git config --global user.name "Mei Lin"
git config --global user.email "mei@example.com"
デフォルトのブランチ名 git config --global init.defaultBranch main
リポジトリをクローン git clone https://github.com/org/tests.git
pull をデフォルトで rebase にする git config --global pull.rebase true

日々の作業

やりたいことコード
何が変わったか git status
現在地から新しいブランチを作成 git switch -c fix/login-flaky-wait
ファイルをステージ git add tests/login.spec.ts
ファイルの一部をステージ git add -p
コミット git commit -m "Wait for login response instead of sleep"
新しいブランチをプッシュ git push -u origin fix/login-flaky-wait
最新の変更を取得 git pull
ブランチを切り替える git switch main

状況を確認する

やりたいことコード
履歴をコンパクトに表示 git log --oneline --graph --decorate -20
1 ファイルの履歴 git log --follow -p -- tests/login.spec.ts
ステージしていない変更 git diff
ステージ済みの変更 git diff --staged
自分のブランチと main の差分 git diff main...HEAD
1 つのコミット git show 3f2a9c1
これらの行を誰が変更したか git blame -L 20,40 tests/login.spec.ts
すべてのブランチ git branch -a

main に追従する

やりたいことコード
ファイルを変更せずにダウンロード git fetch origin
自分のコミットを main の上に積み直す git rebase origin/main
または main を自分のブランチにマージ git merge origin/main
コンフリクトを解消した後 git add <file> then git rebase --continue
rebase を中止する git rebase --abort
rebase したブランチを安全にプッシュ git push --force-with-lease
1 つのコミットをこのブランチにコピー git cherry-pick 3f2a9c1

rebase するのは自分のブランチだけにしましょう。--force-with-lease は、他の人がプッシュしたコミットの上書きを拒否します。

取り消す

状況コマンド
ファイルの編集を破棄(失われます) git restore tests/login.spec.ts
ファイルのステージを解除し、編集は残す git restore --staged tests/login.spec.ts
直前のコミットメッセージを直す、またはファイルを追加 git commit --amend
直前のコミットを取り消し、変更はステージしたまま git reset --soft HEAD~1
プッシュ済みのコミットを取り消す(新しいコミットを追加) git revert 3f2a9c1
ローカルの変更をすべて捨てる(失われます) git reset --hard HEAD
「失った」コミットを探す git reflog

共有ブランチでは revert を使います。reset と amend は履歴を書き換えるため、他の全員が自分のコピーを修正する羽目になります。

作業を一時退避する

やりたいことコード
変更を stash する git stash push -m "half-done locator refactor"
追跡されていないファイルも含める git stash push -u
stash の一覧 git stash list
最新の stash を再適用して削除 git stash pop

壊したコミットを見つける

やりたいことコード
開始 git bisect start
現在のコミットを bad にする git bisect bad
正常だと分かっているコミットを good にする git bisect good v2.3.0
各ステップの判定をテストに任せる git bisect run npx playwright test tests/checkout.spec.ts
終了して元に戻る git bisect reset

bisect run は終了コード 0 を good、1〜127 を bad として扱います(125 はこのコミットをスキップする意味)。

練習してさらに学ぶ

その他のチートシート

キーワードを入力すると SDETRole 全体を検索できます。

Pagefind による全文検索 · ブラウザ内で動作します 検索ページを開く →