通常,'git log'顯示所有對當前點有貢獻的提交,即使那些來自分支合併到當前分支的提交也是如此。是否有可能只看到git中某個特定分支的提交?
是否有可能發出一個命令只看到特定分支中的提交?也就是說,如果有一個集成分支在運輸之前合併了所有東西,那麼是否有任何git命令僅查看那個分支中的提交?
通常,'git log'顯示所有對當前點有貢獻的提交,即使那些來自分支合併到當前分支的提交也是如此。是否有可能只看到git中某個特定分支的提交?
是否有可能發出一個命令只看到特定分支中的提交?也就是說,如果有一個集成分支在運輸之前合併了所有東西,那麼是否有任何git命令僅查看那個分支中的提交?
這(你已經知道)指定一組的承諾,從整合可達:
g log integration
的「^」操作,可用於一切通過這次提交(REV)不可達。舉例來說,一切都通過集成訪問,並排除一切也可達大師:
g log ^master integration
對於常見的簡寫(整合而非掌握):
g log master..integration
您可以使用多個排除符(整合,但不是主人或開發者):
g log ^master ^devel integration
希望覆蓋足夠給你你需要的東西。此信息位於man git-rev-parse
的指定修訂和指定範圍部分。
我不完全確定。 git中的一個分支的概念只是一個指向樹中某個位置的指針(不像svn等中的完全獨立的開發線)。
然而,你可以做一個git分支--no-merged
來查看哪些分支需要集成到當前分支中。
我想有可能寫一些東西,會給你所有提交只有背後的當前HEAD和其他地方。我不知道如何。
這應該工作:
git checkout <branch>
git diff master <commit just before the merge to master>
應該有自動獲得的名稱的方式提交你做這個成宏或別名只是掌握,這將讓合併之前。
此外,檢查出git log -p -m --first-parent
如在git help log
文檔中所述;它可能會做類似的事情。
「--first-parent」幾乎肯定是OP想要的。這將導致修訂樹步行僅遵循合併提交的第一個父代。當您將'topic'合併到'integration'中時,來自'integration'的(合併)提交是第一個父代,而來自'topic'的(合併)提交是第二個父代。假設你已經對你合併的方式保持一致,那應該列出所需的提交。 (OP正在詢問有關提交(複數)的內容,所以它們不需要'diff')。 – Cascabel 2010-10-23 16:51:37