2
我寫一個服務器端更新掛鉤,並希望只處理沒有在推之前庫推的提交,即正在推出的提交通過推。起初,我打算做git rev-list <oldrefvalue>..<newrefvalue>
,但如果其中一個新提交是現有分支的合併,則可以包含現有提交。我想出了這樣做的幾種方法,其中沒有一個令我激動:最好的辦法只處理新提交的更新鉤
- 對於每個提交的
git rev-list <oldrefvalue>..<newrefvalue>
,做git rev-list --all | grep <commit>
,看它是否是現有的承諾(很明顯,我將緩存的git rev-list --all
結果)。 - 不要
git for-each-ref --format="^%(objectname)" refs/heads | xargs git rev-list <newrefvalue>
讓所有提交由推裁判可達但無法到達通過現有的任何分支
的或者是這些方法的最好其他的,或者是有更好的方法來進行此事?