0

Gitリポジトリにプッシュされたすべてのコミットをログに記録したい。ローカルでチェックアウトしたブランチだけでなく、すべてのコミットに関心があります。また、すでに削除されているブランチで発生したコミットを確認したいと思います。svn log必要なのは(Subversionの)と同様のコマンドです。それは可能ですか?

4

1 に答える 1

3

何を求めているのかわかりませんが、gitの世界では不可能だと思います。

私はあなたのリポジトリのクローンを作成し、いくつかのコミットを行うことができます。しかし、私はそれらをあなたと共有する義務はありません。ですから、あなたが決して知らないであろういくつかのコミットがあります。

同様に、私があなたとコミットを共有する場合、私はローカルで10のコミットを行うかもしれませんが、それらをあなたに送る前にそれらを1つのコミットに押しつぶします。10個の元のコミットがこれまでに存在したことを知ることはできません。

ローカルブランチを作成し、いくつかのコミットを作成してから、それらをマージせずにそのブランチを削除することができますgit gc。また、それらのコミットは到達できなくなるため、永久に破棄される可能性があります。

そのため、誰かがコミットを作成したが共有しなかったため、または作成したが後でそれらを参照する唯一のブランチを削除してガベージコレクションに使用できるようにしたために、知らないコミットがいくつかあります。

あなた知っているすべてのコミットを見たいのなら、gitk --allあなたが探しているものかもしれません。ローカルまたはリモートのすべてのブランチから到達可能なすべてのコミットのグラフィカルビューが表示されます。同様に、git log --allすべてのブランチから到達可能なすべてのコミットの要約テキストが表示されます。

リモートリポジトリでぶら下がっているコミットを特に探している場合、これを行う方法がわかりません。git fetchデフォルトでは、フェッチはブランチから到達可能なコミットのみをフェッチします。-tタグから到達可能にするように指定できます。しかし、リモートreflogをフェッチできるとは思いません

于 2012-09-16T14:51:27.410 に答える