[解決済み] 任意のブランチで文字列を導入した Git コミットを見つけるには?
2022-03-21 09:23:33
質問
の任意のコミットで導入された特定の文字列を検索できるようにしたいのです。
どのブランチでもいいのですが、どうすればいいのでしょうか?私は何かを見つけました(私はWin32用に変更した)。
しかし
git whatchanged
は、異なるブランチを調べていないようです。
(py3kの塊は無視してください。msys/winの改行修正です)
git whatchanged -- <file> | \
grep "^commit " | \
python -c "exec(\"import sys,msvcrt,os\nmsvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)\nfor l in sys.stdin: print(l.split()[1])\")" | \
xargs -i% git show origin % -- <file>
ソリューションが遅くても、別にいいんです。
どのように解決するのですか?
することができます。
git log -S <whatever> --source --all
を追加または削除したすべてのコミットを検索するには、次のようにします。
固定文字列
whatever
. その
--all
パラメータは、すべてのブランチから開始することを意味し
--source
は、どのブランチがそのコミットを見つけるに至ったかを示すことを意味します。 を追加すると便利です。
-p
を使えば、それぞれのコミットが導入するパッチも表示することができます。
1.7.4以降のgitのバージョンにも、同様の
-G
オプションがあり、これは正規表現
. これは実際には異なる(そしてむしろより明白な)セマンティクスを持っており、以下で説明します。
濱野純夫氏のブログ記事
.
として サメーラ がコメントで指摘しているように、検索語にスペースやその他の特殊文字が含まれる場合などには、引用符で囲む必要があります。
git log -S 'hello world' --source --all
git log -S "dude, where's my car?" --source --all
以下は
-G
の出現を見つけるために
function foo() {
:
git log -G "^(\s)*function foo[(][)](\s)*{$" --source --all
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] コミット前に 'git add' を取り消すにはどうすればよいですか?
-
[解決済み] リモートのGitブランチをチェックアウトするには?
-
[解決済み] Git リポジトリを以前のコミットに戻すにはどうすればよいですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】ローカルのGitブランチの名前を変更するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】現在のブランチの先端がリモートブランチより遅れているため、更新が拒否されました。
-
[解決済み】gitがローカルバージョンをリモートバージョンに置き換える
-
[解決済み】Git サブモジュール head 'reference is not a tree' エラー
-
git revert + git rebase 一度に複数のコミット_本然233的博客程式员息信网_git revert Multiple
-
[解決済み] [Solved] originにプッシュしようとすると、Gitが「No such remote 'origin'」と言うのはなぜですか?
-
[解決済み] 複数のgitコミットを元に戻すには?
-
[解決済み] 短いGitバージョンのハッシュを取得する
-
[解決済み] .gitignore と "以下の追跡されていない作業ツリーファイルはチェックアウトによって上書きされるでしょう"
-
[解決済み] Gitのコミットの差分や内容を特定の単語でgrepする方法
-
[解決済み】位置指定パラメータを使用したGitエイリアス