[英]Filter git log by only merge-base and merge commits
我的 git 存儲庫有多個分支。 我想看到一個描述這些分支如何划分和合並的分支圖。
考慮這個圖:
$ git log --graph --all --oneline
* eac03d9 (develop) Merge branch 'release/xxx' into develop
|\
* \ d94a368 Merge branch 'feature/xxx' into develop
|\ \
| * | 624b398 feat: xxx
| * | 9a87641 feat: xxx
| | | * 6bfbc30 (master) Merge branch 'release/xxx'
| | | |\
| | | |/
| | |/|
| | * | 8d85380 (release/xxx) fix: xxx
| | * | f7e9ef9 fix: xxx
| |/ /
|/| |
* | | 733751e feat: xxx
* | | d5efb9e feat: xxx
|/ /
* | 5ceb217 feat: xxx
* | ea70adf feat: xxx
* | eeff2a3 feat: xxx
|/
* b4b3db0 root
它包含許多feat: xxx
和fix: xxx
commits,我想隱藏它們。 我正在尋找一些git log
選項來僅過濾合並基礎和合並提交。
例如:
* eac03d9 (develop) Merge branch 'release/xxx' into develop
|\
* \ d94a368 Merge branch 'feature/xxx' into develop
|\ \
| | | * 6bfbc30 (master) Merge branch 'release/xxx'
| | | |\
| | | |/
| | |/|
| | * | 8d85380 (release/xxx) fix: xxx
| |/ /
|/| |
|/ /
|/
* b4b3db0 root
我想這應該對你有用。
git log | grep -vE "[a-zA-Z0-9] feat: xxx|[a-zA-Z0-9] fix: xxx"
解釋 :
1)
|
-> 管道將在 LHS 向 RHS 提供命令輸出
示例: git log | grep "fix"
git log | grep "fix"
會將 git log 的輸出提供給grep
命令
2)
grep -vE -> v 用於避免/排除,E 用於在單個 grep 中添加更多參數(或者我可以說它為or
,即grep "a|b"
表示如果有a
或b
則顯示輸出
3)
[a-zA-Z0-9] -> 是一個避免特殊字符的正則表達式(見這里: https : //regex101.com/r/DXmsTi/1 )
更新:
git log | grep -E " Merge branch |\(release/"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.