2

私のシステムにインストールされている、git リポジトリの一部であることがわかっているファイルがあります。どのコミットがそのファイルのそのバージョンを (再) 導入したか、つまり、どのコミットがファイルを現在の状態にする責任があるかを知りたいです。

動作するため、ファイルがレポにあることはわかっていますgit show $(git hash-object $the_file)

現時点では、この例の問題に対する解決策は必要ありません。git のデータ構造をナビゲートする方法についてもう少し学びたいと思っています。

4

4 に答える 4

1

現在のバージョンで、(ユニット テスト プログラム、シェル スクリプトなどによって) テストできる特定の機能が導入されている場合は、git bisect ツールを使用して、この機能の原因となっているコミットを見つけることができます。

このコマンドのマニュアルは次のとおりです: http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html

于 2010-08-07T21:57:59.830 に答える
1

重複を指摘してくれた@Jefromiに感謝します。この質問は重複としてクローズされていないため、他のスレッドで受け入れられた回答を参照して回答します。これには、多かれ少なかれ最適な、私が望むことを実行しているように見えるperlスクリプトが含まれています効率。

于 2010-08-08T03:56:09.513 に答える
0

どうgit log <the file>ですか?

于 2010-08-07T20:08:48.683 に答える
0

を使用して指定されたバージョンのファイルのハッシュを取得しgit hash-object <file>、次に を使用してgit log --raw -- <file>、このハッシュをページャー (「less」と「more」では「/」) で検索します。

于 2010-08-07T22:46:25.797 に答える