GitHub上で、特定のファイルに加えた「特定の文字列」の変更を追跡したい場合があります。例えば、config.yaml 内の API_KEY の変更や、README.md 内のある文言の修正などです。
ここでは、その手順を解説します。
1. 特定文字列を含む変更を探す
方法1:Git CLI を使う
Git では -S オプションで、指定した文字列を追加・削除したコミットを探せます。
git log -S "検索したい文字列" --
"検索したい文字列": ファイル内で探したい内容
例:
git log -S "API_KEY" -- config.yaml
これで、config.yaml 内で "API_KEY" を追加・削除したコミットが一覧で出ます。
方法2:GitHub Web UI を使う
リポジトリページで Code タブを開く
ファイル内で文字列を検索(t キーでファイル検索、または / キーで全文検索)
目的の文字列が含まれるコミットを探す場合、History を確認して関連コミットを特定
CLI の方が確実で速いです。
2. 文字列を変更したコミットのPRを確認
文字列を含むコミットが特定できたら、前回の記事と同様にPRを確認できます。
方法1:Web UI
コミットページの右サイドバーで This commit is part of pull request #xxx を確認
方法2:GitHub CLI
gh pr view <commit-sha>
方法3:GraphQL API
{
repository(owner: "org", name: "repo") {
object(expression: "commit-sha") {
... on Commit {
associatedPullRequests(first: 10) {
nodes {
number
title
url
}
}
}
}
}
}
3. 実務での流れ(文字列単位)
文字列を含むコミットを特定 → git log -S "文字列" -- ファイルパス
コミットページでPRを確認 → Web UI or CLI or GraphQL
必要に応じて差分を確認 → git show <commit-sha> で、変更箇所を詳しく確認
4. 注意点
-S は文字列の 追加・削除 を検知するので、単純に文字列があるだけではヒットしません
squash merge で取り込まれた場合、個別コミットではなくまとめられたコミットでしか追えない
文字列が複数ファイルにまたがる場合はファイルごとに確認が必要
こうしておくと、「誰がいつ、どのPRで特定文字列を変更したのか」を簡単に追跡可能です。