我們最近將我們的SVN倉庫轉換爲GIT。我們似乎通過這種轉換失去了一些提交,並想驗證這一點。如何通過提交消息找到git提交倉庫?
所以我們希望爲每個svn提交找到一個匹配的git commit來檢查轉換是否實際發生。
$ git log|grep "some partial commit message"
不能滿足,因爲它只走過直接ancenstors並忽略不直接祖先的分支。
$ 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
閱讀git-log的幫助頁將有所幫助:您可以使用類似'git log --all --format = | grep ',其中''將會像「SHA - commit message」一樣,詳見手冊頁 –