如何查询git以找出哪些分支包含给定的提交?gitk通常会列出分支,除非有太多分支,在这种情况下它只是说"很多(38)"或类似的东西.我需要知道完整列表,或者至少是否某些分支包含提交.
是否有一个命令行开关传递给默认情况下git diff
使用less
寻呼机的其他命令?
我知道我可以将它传递给cat,但这会删除所有语法高亮显示.
我知道我可以将全局.gitconfig中的寻呼机设置为cat by GITPAGER=cat
(或类似的东西); 但我想有时候有寻呼机(取决于差异的大小).
但是,如果有的话,我更喜欢命令行开关; 我无法找到一个,通过手册页.
我在存储库中有一堆未注释的标记,我想知道它们指向哪个提交.是否有一个命令只列出标签及其提交SHA?检查标签并查看HEAD对我来说似乎有点过于费力.
我在通过回复之后意识到,我真正想要的只是简单地看一下导致标签的历史,这就git log <tagname>
足够了.
标记为答案的答案对于获取标签及其提交列表很有用,这就是我的要求.有一点shell hackery我敢肯定可以将它们转换为SHA + Commit消息.
我尝试为此寻找一个特殊的git命令,但找不到一个.任何人都可以提出更短或更快的建议:
git branch | awk '/\*/ { print $2; }'
Run Code Online (Sandbox Code Playgroud) 我目前正在使用具有多个分支的存储库.
当我创建一个标签时,该标签是否指向当时的分支?
换句话说:每当我创建一个标签时,我是否需要切换到该分支内的所需分支和标签,以便标签在该时间点引用该分支?
我从分支(假设v1.0.0
)上的标签(假设staging
)运行管道。我的输出文件是用${CI_PROJECT_NAME}-${CI_COMMIT_REF_NAME}.apk
. 结果是一个名为MyProject-v1.0.0.apk
.
我希望在输出文件名中添加分支名称以获取MyProject-staging-v1.0.0.apk
.
从 gitlab 文档中,我可以使用CI_COMMIT_TAG
并CI_COMMIT_BRANCH
喜欢这样${CI_PROJECT_NAME}-${CI_COMMIT_BRANCH}-${CI_COMMIT_TAG}.apk
。但文档说:
CI_COMMIT_BRANCH :提交分支名称。仅在构建分支时出现。
CI_COMMIT_TAG :提交标签名称。仅在构建标签时出现。
那么如何获取分支名称呢?
我有一些历史改写要做,我现在想保持原始树完好无损.然而,重写的树应该复制先前使用的标签.是否有比使用分支名称添加标签名称更少的手动选项?
所以我读过Git:如何找出哪个分支标签?和许多其他帖子,我已经知道如何使用:
git branch --contains tag
但是,我仍然需要知道如何在特定存储库中列出包含给定提交(或标记)的分支.
我archive
使用以下方法从远程存储库中提取了一个标记列表:
git ls-remote --tags archive
Run Code Online (Sandbox Code Playgroud)
现在,对于每个提取的标签,我希望得到包含分支的列表.使用命令:
git branch --contains tag
没有帮助,因为找不到标记,因为它们在origin
存储库中不存在.
gitlab 中有没有一种方法或设置可以允许用户从预先批准的分支创建标签?
换句话说,如果我尝试在 Gitlab 上创建新标签,我会获得“创建自”字段的 Git 修订版本的特定列表。
git ×8
git-tag ×4
git-branch ×2
gitlab ×2
branch ×1
git-rebase ×1
gitlab-ci ×1
tagname ×1
tags ×1