[英]How can I list related branches in git log
我正在尋找一種可能性來顯示給定文件的歷史記錄以及給定提交所在分支的信息。
鑒於此 git 存儲庫:
$ git log --graph --all --decorate=full --pretty=oneline --abbrev-commit
* 3b116ab (refs/heads/br2) x
| * 8777a0a (HEAD -> refs/heads/br1, refs/heads/branch) g
| * 9be1f38 d
|/
| * 3a30d9c (refs/heads/master) d
| * e678c2f c
|/
* faa3666 b
* 03ea6ad a
我需要給定文件的歷史記錄
$ git log --graph --all --decorate=full --pretty=oneline --abbrev-commit -- a
* 9be1f38 d
| * e678c2f c
|/
* faa3666 b
* 03ea6ad a
以及提交所在分支的信息
$ git branch -a
* br1
br2
branch
master
$ git branch -a --contains 9be1f38
* br1
branch
$ git branch -a --contains e678c2f
master
$ git branch -a --contains faa3666
* br1
br2
branch
master
結合在一個概述中,例如
$ git magical-command
+ refs/heads/br2
| + HEAD -> refs/heads/br1, refs/heads/branch
| * 9be1f38 d
|/
| + refs/heads/master
| * e678c2f c
|/
* faa3666 b
* 03ea6ad a
當然,實際上會有更多的提交不會改變我的文件“a”。
我認為這可能不是那么不尋常,但我沒有找到這樣的東西。 所以任何提示都會受到歡迎。
你可以得到你想要的東西,但首先需要澄清一個誤解,不要跳過這一點:提交可以是任意數量提交的祖先,你在本地存儲庫中使用的任何名稱都是無關緊要的。 分支名稱指的是歷史圖中當前特定的提交,但它們是嚴格本地的; 任何兩個 repo 中使用的分支名稱之間的任何對應關系都是方便或巧合的問題,您昨晚的 repo 中的WIP
分支幾乎肯定與 Sam's 中的WIP
分支無關。
您正在尋找的命令是
git log --graph --decorate --oneline --ancestry-path --simplify-by-decoration --branches ^9be1f38
前三個參數非常有用,我有
git config --global alias.lgdo '!f(){ git log --graph --decorate --oneline "${@---all}"; }; f'
所以git lgdo
給出了一個完整的概述, git lgdo @
給出了當前的結帳歷史,等等。
你的命令將是
git lgdo --ancestry-path --simplify-by-decoration --branches ^9be1f38
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.