如何获取创建test分支时所用pack分支的commit哈希(Git/GitLab API)
获取test分支创建时pack分支的commit哈希
一、使用Git命令
方法1:通过reflog查看分支创建记录
如果本地仓库的reflog还保留着分支创建时的记录,直接执行:
git reflog show test
在输出结果中找到类似 checkout: moving from pack to test 的条目,对应的哈希值就是创建test分支时pack分支的commit。
方法2:通过提交历史追溯
如果reflog记录已丢失,可通过以下步骤获取:
- 找到test分支上第一个不属于pack分支的提交:
git rev-list --reverse test --not pack | head -1
- 获取该提交的父提交(即创建test时pack分支的commit):
git rev-parse $(git rev-list --reverse test --not pack | head -1)^
二、使用GitLab API
方法1:通过分支对比接口
调用GitLab的分支对比API,获取test与pack分支的差异提交:
curl --header "PRIVATE-TOKEN: <你的访问令牌>" "https://<GitLab域名>/api/v4/projects/<项目ID>/repository/compare?from=pack&to=test"
在返回的JSON结果中,commits数组的最后一个元素即为test分支的第一个独有提交,取该提交的parent_ids字段中的第一个值,就是创建test时pack分支的commit哈希。
方法2:通过项目事件记录(需GitLab版本支持)
如果test分支是通过GitLab UI创建的,可查询项目事件获取创建信息:
curl --header "PRIVATE-TOKEN: <你的访问令牌>" "https://<GitLab域名>/api/v4/projects/<项目ID>/events?action=created&target_type=Branch&target_title=test"
在返回的事件中,部分版本的GitLab会携带创建时源分支的commit信息,可从中提取目标哈希。
内容的提问来源于stack exchange,提问作者Ahmed Abdeljelil
相关产品推荐
相关产品推荐

