-1

特定のファイルが送信された最後のコミットを取得しようとしました (「git log foo.cc」のようなもの)。すべてのコミットを取得し、それらを確認します。コミット ツリーでファイルを探します。問題は、すべてのコミットに興味のあるファイルが含まれていることです。コミット ツリーには、送信されたファイルのみが含まれていると想定されていますか?それとも、コミット時にツリーに完全なツリーが含まれていると想定されていますか?

ツリーがいっぱいになっていると思われる場合: ファイル (TreeEntry) が特定のコミットで変更されたかどうかを知るにはどうすればよいですか?

ありがとう!

4

1 に答える 1

0

git では、すべてのコミットにリポジトリ全体の表現状態が含まれています。詳細については、こちらをご覧ください。この選択が行われた理由については、パラグラフのスナップショットではなく違いが明らかです。ファイルが 2 つのコミット間で変更されていない場合、最後のコミットには、前のコミットのファイルへのポインターが含まれているだけであることに注意してください。2 つの連続するコミットのポインタを比較して違いを見つけることができます。別のアプローチは、Edward Thomson のコメントに記載されているように、差分ツールを使用することです。

于 2012-12-12T01:18:27.440 に答える