2017-07-11 42 views
0

在我們的存儲庫上運行git describe --tags時,它不再報告其中一個分支上的最新標記,即使看起來提交在兩個分支中。git describe --tags不報告正確的標記

有沒有人有任何想法如何發生這種情況,以及我如何能夠解決它,使標籤也可以在開發分支?

$ git tag 
... 
2.7.1 
2.7.2 
2.7.3 
2.7.4 

$ git checkout develop 

$ git describe --tags --abbrev=0 
2.7.2 

$ git rev-list -n 1 2.7.4 
d700ec90cd7a82be076c1b69b0815a3dab4597ac 

$ git rev-list -n 1 2.7.2 
79c161b96541da2d039e0cef649044f57387fa8d 

$ git cat-file -t 2.7.2 
commit 

$ git cat-file -t 2.7.4 
commit 

$ git merge master 
Already up-to-date. 

$ git branch --contains d700ec90cd7a82be076c1b69b0815a3dab4597ac 
* develop 
    master 

$ git describe --tags --abbrev=0 
2.7.2 

$ git log 2.7.4..HEAD 
# shows the proper log even on develop (where the tag doesn't exist according to describe) 

$ git checkout master 

$ git describe --tags --abbrev=0 
2.7.4 

從開發分支:

$ git describe --tags --abbrev=0 --debug 
searching to describe HEAD 
lightweight  580 2.7.2 
lightweight  613 2.7.1 
lightweight  618 2.7.0 
lightweight  791 2.6.0 
lightweight  1134 2.5.2 
lightweight  1210 2.5.1 
lightweight  1345 2.5.0 
lightweight  1464 2.4.4 
lightweight  1597 2.7.4 
lightweight  1597 2.7.3 
traversed 1600 commits 
more than 10 tags found; listed 10 most recent 
gave up search at f3a739ef25d49556538e990c110df3f465e29fa3 
2.7.2 

從主分支:

$ git describe --tags --abbrev=0 --debug 
2.7.4 

從開發分支(部分):

$ git log --graph --decorate --oneline --all --simplify-by-decoration 
* c813804fd (HEAD -> develop, origin/develop, origin/HEAD) Merge pull request #3070 
* d700ec90c (tag: 2.7.4, origin/master, master) Bump version: 2.7.3 → 2.7.4 
* ce8e6b8a9 (tag: 2.7.3) Bump version: 2.7.2 → 2.7.3 
* 79c161b96 (tag: 2.7.2) Bump version: 2.7.1 → 2.7.2 
* 17aa75b5a (tag: 2.7.1) Bump version: 2.7.0 → 2.7.1 
* e4b0d4c7e (tag: 2.7.0) Bump version: 2.6.0 → 2.7.0 
+0

你可以顯示'git describe --tags --abrev = 0 --debug'嗎? –

+0

@AnonySottile更新爲包含該輸出。 – hatch

回答

0

git log --graph --decorate --oneline --all --simplify-by-decoration會告訴你一個哨兵全面瞭解您的回購內容。它的輸出將是你的問題的最佳答案。

你拉閘經常使用的命令git的別名,讓生活非常方便,就如何

git config alias.lgdo '!f() { git log --graph --decorate --oneline "${@---all}"; }; f' 

作品晚自習,你永遠不會捱餓再次。


好吧,好吧,也許。但別名和shell函數以及別名中的shell函數以及所有相關的方法使事情變得更簡單和更快,因此您可以使用Git R Dun,值得學習。

+0

謝謝,我已經更新了該問題以包含該命令的截斷輸出。雖然我看到2.7.4標籤與其他標籤不同,但2.7.3與其他標籤相同,不會返回。 – hatch

+0

我在那裏看不到頭。我不知道如何生成一個不顯示HEAD的'--graph --all'日誌,你是怎麼做到的? – jthill

+0

對不起,我截斷了太多,它已被添加 – hatch