簡體   English   中英

僅通過合並基礎和合並提交過濾 git log

[英]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: xxxfix: 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"表示如果有ab則顯示輸出

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM