コミットハッシュを指定してGitHubでコミットを検索する


286

私はGithubにかなり慣れていないため、素人っぽい問題に遭遇しました。

コードレビューを依頼され、コミットハッシュが提供されましたが、コミットハッシュを使用して検索できても何も見つからない場合は、Gitを調べてみました。

コミットハッシュを使用するだけで変更されたコードを見つける方法はありますか?


46
githubが検索のハッシュを認識せず、そのハッシュに一致するものが存在する場合はコミットを表示するのは、まったく奇妙なことです。
クレイグリンガー、2015

実際には@CraigRingerの場合、github検索はプルリクエストで発生したハッシュと一致します。実際、必要に応じて、github全体で7文字のハッシュプレフィックスを検索できます。しかし、それは単なるコミットではなく、プルリクエストでなければなりません。
トッドオーウェン

4
@ToddOwenいいですが、ポイントではありません。そのリポジトリ内で検索すると、リポジトリ内のコミットハッシュに一致するはずですが、一致しないのは本当に奇妙です。
クレイグリンガー

2
@CraigRingerやっとやった!私の新しい答えを見てください。
トッドオーウェン

回答:


378

フォームのURLには、https://github.com/<owner>/<project>/commit/<hash>そのコミットで導入された変更が表示されます。たとえば、GitHub上の私のプロジェクトの1つに対して最近行ったバグ修正は次のとおりです。

https://github.com/jerith666/git-graph/commit/35e32b6a00dec02ae7d7c45c6b7106779a124685

次のように、ハッシュを任意の一意のプレフィックスに短縮することもできます。

https://github.com/jerith666/git-graph/commit/35e32b


GitHubについてたずねたところですが、完全を期すために:リポジトリをチェックアウトしている場合は、コマンドラインからこれらのコマンドのいずれかで基本的に同じことを実現できます(一意のプレフィックスもここで機能します)。

git show 35e32b6a00dec02ae7d7c45c6b7106779a124685
git log -p -1 35e32b6a00dec02ae7d7c45c6b7106779a124685

注:コミットハッシュを短くしすぎると、コマンドラインからわかりやすいメッセージが表示されますが、GitHubは404を返します。


mongoでアサーションをトレースしようとしたときにこれに遭遇し、コミットのハッシュを指定すると、特定のファイルを表示するための同様のURLパターンがあることがわかりました:github.com/$owner/$project/blob/$hash/path /to/file.ext -例えばgithub.com/mongodb/mongo/blob/...
RubyTuesdayDONO

このgit log -p -1 35e32b6a00dec02ae7d7c45c6b7106779a124685場合、-1が必要です。そうしないと、すべての古いコミットが表示されます。ハッシュには自動補完がないため、ハッシュの4つの初期番号(テストでは最小)を使用できることを知っておくと便利です。また、次のようにブランチを指定することはできませんgit log master -p -1 35e3。Gitバージョン:1.7.9.5。
Rafael Barros、

もう1つのobsですが、非常に重要な1つがあります。ここでも、ブランチを指定することはできませんが、ハッシュを指定すると、ローカルブランチとリモートブランチが自動的に検索されます。つまり、コマンドラインでローカルリポジトリにマージする前に、特定のリモートdiffを検索できます。
Rafael Barros、

1
誰かが疑問に思った場合(私はそうでした!)、これはgithub:github.com/jerith666/git-graph/commit/35e32b6aとコマンドラインの両方でハッシュの最初の8でも機能します:git log -p -1 35e32b6a
SimplGy

7
UIがこれを簡単にできるようにしていないのはちょっと馬鹿げています...機能のリクエストでうまくいくといいのですが。
オコケット2015年

49

単一のコミットを表示:
https://github.com/<user>/<project>/commit/<hash>

ビュー・ログ:
https://github.com/<user>/<project>/commits/<hash>

完全なリポジトリを表示:
https://github.com/<user>/<project>/tree/<hash>

<hash> 一意であれば、どのような長さでもかまいません。


1
長さが7文字以上であれば問題あり
ません

3
コミットハッシュの最小長は4文字ではありません(これも、リポジトリ全体で一意である限り)
qwertzguy

21

コミット検索する機能が最近GitHubに追加されました。

ハッシュを検索するには、検索ボックスに少なくとも最初の7文字を入力します。次に、結果ページで[コミット]タブをクリックして、一致するコミットを確認します(ただし、通常はデフォルトブランチのみmaster)、または[問題]タブをクリックして、コミットを含むプルリクエストを確認します。

より明確にするhash:ために、検索にプレフィックスを追加できますが、それは本当に必要ではありません。

REST APIもあります(執筆時点ではまだプレビュー段階です)。


2
それが実際にこのように機能することに驚いています。直感的ではありません。デフォルトでは、Githubには「コード」タブが表示され、結果は明らかにありません。デフォルトで結果を含む唯一のタブを表示するべきではありませんか?
Summerian、2017年

:あなたがあなた自身の企業がgithubののインストールを持っているのであれば、明確にするために、あなたはそれがとても好きを検索することによって、いずれかの任意のレポにコミット見つけることができる https://YourGithubDomain/search?q=YOUR_COMMIT_HASH&type=Commits 私は、同様のGithub上でこれを試してみました。なお、それは例えば、あまりにもそこで働い https://github.com/search?q=38db172d13962ea177c00c9a3b4b3169b317e94b&type=Commits
ブラッド・パークス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.