在我们的存储库上运行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 :(得分:1)
git log --graph --decorate --oneline --all --simplify-by-decoration
会向您展示您回购中的内容的骨架概览。它的输出将是您问题的最佳答案。
使用命令的git别名经常使生活非常方便,研究如何
git config alias.lgdo '!f() { git log --graph --decorate --oneline "${@---all}"; }; f'
工作,你永远不会再饿了 1 。
1 好吧,好吧,也许吧。但是别名和shell函数以及别名中的shell函数以及所有相关的方法可以使Git R Dun更容易和更快,这是值得学习的。