7

最近、SVNリポジトリをGITに変換しました。この変換によっていくつかのコミットが失われたようです。これを確認したいと思います。

したがって、変換が実際に行われたかどうかを確認するために、各svncommitに一致するgitcommitを見つけたいと思います。

$ git log|grep "some partial commit message"直接の祖先をウォークスルーし、直接の祖先ではないブランチを無視するため、十分ではありません。

$ git show <commit-hash>svnにはsha1sumsがないため、機能しません。

私が見つけた最も近いものは次のとおりです。$ git reflog show --all --grep="releasenotes"|xargs git show --shortstatただし、コミットメッセージ以外の場所でgrepを実行しているように見えるため、これは完全には機能していないようです(誤検知が発生しました)。

私もこれを使おうとしました:$ git rev-list --all|xargs -n1 bash -c 'git show|head -n10'|grep -i release

基本的に、diffなしでコミットメッセージを出力するための良い方法がありません。

[編集]

正確にはわかりませんが、リポジトリ内のすべてのコミットメッセージが一覧表示されるはずです。

git rev-list --all|xargs -n1 git log -n1
4

3 に答える 3

14

--all次のオプションを使用できますgit log

git log --all --oneline --graph --decorate | grep "message"

これは

git log --all --oneline --graph --decorate --grep "message"

または、コンテキストが必要で、コミットがあまりない場合は、次のようなことを行うことができます。

git log --all --oneline --graph --decorate | less
/ message

そうすれば、他のコミットに対して自分のコミットがどこにあるかを確認できます。

于 2012-12-19T15:09:40.460 に答える
8

--grep次のオプションを使用できますgit log

$ git log --all --grep=word

「特定の単語のgitcommitをgrepする方法」を参照してください。これはcommitメッセージをgrepするためのものです。

于 2012-12-19T15:12:58.123 に答える
1

GUIを使用することもできます。

gitk

GUIが開き、コミットメッセージを包含ボックスに書き込み、Enterキーを押します。

一致するすべてのコミットが強調表示されて表示されます。

于 2012-12-19T15:35:03.990 に答える