コミットビュー間の違い
GitHub Enterprise では、リポジトリのコミット履歴を表示する方法が実質 2 通りあります:
- リポジトリのコミットページに直接移動する方法
- ファイルをクリックし、[History] を選択して、特定のファイルのコミット履歴に移動する方法
時として、この 2 通りのコミットビューに異なる情報が表示されることにお気づきになるかもしれません。 すなわち、単一ファイルの履歴では、リポジトリのコミット履歴で見つかったコミットを省略する可能性があります。
そもそも、Git にはリポジトリの履歴を表示するためにいくつかの方法が備わっています。 単一ファイルの履歴を表示するとき、Git はファイルを変更しなかったコミットを省略することで履歴を「簡素化」します。 すべてのコミットを見てそれぞれがファイルに変化を与えたか判断するのではなく、Git はマージしたブランチがファイルの最終コンテンツに影響を与えていないのであれば、そのブランチ全体を省略します。 ファイルに変化を与えたそのブランチ上のいかなるコミットも表示されません。
GitHub Enterpriseにおけるファイル履歴ははっきりとこの方針に従っています。それには 2 つの理由があります:
-
最終結果に実際にコントリビュートしていないコミットを削除することで履歴を簡素化できる (例: サイドブランチが変更の後で元に戻った場合、またはサイドブランチにチェリーピックされ クリーンアップされた変更が散らかった状態で含まれていた場合)
-
その方が、ファイルに影響を与えないサイドブランチすべての履歴まで見なくて済むため、計算するのにはるかに効率的である
もちろん、この切り捨てられたビューには求めている情報が必ずしもあるとは限りません。 時には、失敗した実験、または散らかった履歴について、あるいは問題のあるマージで何が間違っていたのか本当に知りたい場合もあります。 前にも述べたとおり、Git は履歴を確認する方法をいくつも持っていて、GitHub Enterprise はリポジトリのコミットページに関するさらに詳細な情報を持つビューを 1 つ備えています。
Git のコミット履歴に対する考え方に関する詳しい情報については、git log
ヘルプの記事「History Simplification」のセクションで読むことができます。