[英]How to find git commits in the repository by commit message?
我們最近將SVN存儲庫轉換為GIT。 似乎我們通過此轉換丟失了一些提交,並希望驗證這一點。
因此,我們希望為每個svn提交找到匹配的git提交,以檢查轉換是否實際發生。
$ 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
基本上我沒有一個很好的方法來打印沒有差異的提交消息。
[編輯]
我不完全確定,但我想這應該列出存儲庫中的所有提交消息。
git rev-list --all|xargs -n1 git log -n1
你可以使用git log
的--all
選項
git log --all --oneline --graph --decorate | grep "message"
這相當於
git log --all --oneline --graph --decorate --grep "message"
或者,如果您希望擁有上下文並且沒有很多提交,那么您可能希望執行類似的操作
git log --all --oneline --graph --decorate | less
/ message
而且這樣你可以看到你的提交是相對於其他的提交。
您也可以使用GUI。
gitk
它將打開一個GUI,然后在包含框中編寫您的提交消息,並按Enter鍵。
它將突出顯示所有匹配的提交。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.