在合并过程中,我同时使用Delete source branch when merge request is accepted
和Squash commits when merge request is accepted
选项。
Gitlab的工作做得很完美:它将提交压缩到单个分支并将其合并到目标分支。
但它也保留原始提交-您可以在合并请求页面的Commits
选项卡中看到它们:
我希望能够 checkout 这些提交,但是在新克隆的仓库中,git无法通过哈希找到它们:
$ git checkout c8ad8edf
error: pathspec 'c8ad8edf' did not match any file(s) known to git
我认为这是因为git clone
只获取初始提交后可以到达的提交,但是GitLab保存了这些信息-我可以在浏览器中查看任何提交的信息:
那么我该如何 checkout 这些提交呢?
1条答案
按热度按时间2hh7jdfx1#
您可以获取
refs/merge-requests/$id/head
ref,其中$id
是合并请求的数字ID(在您的示例中是3,来自屏幕截图):请参阅通过head ref在本地 checkout 合并请求。注意,在GitLab 13.4及更新版本中,该ref会在MR合并或关闭14天后删除。