GitHub:古いバージョンのファイルを検索する


98

GitHubを使用すると、リポジトリ内のファイルの現在のバージョンをすべて検索できることを知っています。ただし、レポファイルの古いバージョンも検索したいと思います。たとえば、以前はコードにget_info()という関数がありましたが、数バージョン前に削除したため、get_infoを検索してコードを見つけることができます。GitHubを使用してそれができない場合、gitコマンドラインから可能ですか?

編集

これをgitコマンドラインから実行する方法を示してくれた@Mark Longairに感謝します。GitHubでそれが不可能な場合、それはすばらしい機能です。

回答:


121

現在、githubウェブサイトでリポジトリのコードの完全な履歴内を検索することはできないと思います。最も近いのは、このページの「コード検索」オプションでリポジトリの現在のコード内を検索することだけです

ただし、コマンドラインからは、へget_info-Sオプションで言及されている行を導入または削除したコミットを見つけることができますgit log。例えば:

git log -Sget_info -p

(nb -Sと検索語の間にスペースがあってはいけません)

(また、注:複数の単語を検索するには、で囲みます'):

git log -S'get info' -p

したがって、少なくとも関数が最初に導入されたコミットとそれを削除したコミットを見つける必要があります。-pパッチも確認できるように追加しました-たくさんのコミットが役に立つかもしれない機能に言及した変更を導入した場合。関数が別のブランチにのみ存在する場合は、--allすべてのブランチを検索するのに使用すると便利な場合もあります。

Jefromiが紹介されているgitの1.7.4以下のコメントで指摘-G代替としてオプションを-この変更はジュニオ・ハマーノ(gitのメンテナ)からの最近のブログ記事に要約される。http://gitster.livejournal.com/48191.html


2
はい、コメントを検索できることはわかっていますが、コードの検索についてはどうですか?
Normski、2011年

10
-Sオプションコードを調べます- get_infoコミットが導入する差分に含まれるすべてのコミットを見つけます。--grepログメッセージを検索するオプションと混同している可能性があります。
Mark Longair、2011年

2
@normski:そして、最近のバージョンのgit -Gには、固定文字列の代わりに正規表現を使用する同様のオプションが追加されています。
Cascabel 2011年

@Jefromi:言及してくれてありがとう-私はそれを答えに追加しました。
Mark Longair、2011年

2
@Anthony Damico:はい、ちょうど例えば、検索文字列を引用git log -S'get info' -p
マーク・Longair
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.