Git是一款写得非常好的软件,你可以长时间使用它而不真正了解发生了什么。
我正在尝试获取最近与主分支合并的分支名称,但我似乎在使用git log、git show等命令时没有进展。
当我查看提交到主分支的提交时,Github有分支名称历史记录,但我想知道这是否是github额外跟踪的内容而不是我可以通过git访问的内容。任何帮助都将不胜感激!
正如评论所述,此信息未被记录。
您可以考虑使用post-merge
hook,例如此钩子,它将:
git reflog
)git notes add
来为当前合并提交添加所需的信息。然而,这是一个本地钩子,需要在每个克隆的存储库上安装。如果您是唯一在存储库上工作的人,那么这将起作用。
正如@torek在评论中提到的那样,您可以在合并提交本身中使用消息。
#!/bin/bash
commit_subject=$(git log -1 --pretty=format:%s)
echo Commit subject: $commit_subject
regex='Merge pull request #[0-9]+ from .+/(.+)$'
[[ $commit_subject =~ $regex ]]
branch_name=${BASH_REMATCH[1]}
echo Merged branch: $branch_name
示例输出:
Commit subject: Merge pull request #2574 from RepoName/BranchName
Merged branch: BranchName
merge branch B
或merge branch B into T
)外,Git 不会在任何地方保存此信息。分支名称是可移动和可删除的,因此如果名称已被移动或删除,则无法找到此信息。 - torek