美文网首页
gitlab merge方式修改

gitlab merge方式修改

作者: 不做秃顶的程序猿 | 来源:发表于2018-11-02 01:31 被阅读0次

Gitlab 在处理提交的 Merge Requests 时,默认情况下是使用正常的merge后在提交一次,相当于git merge --no-ff

但如果要合并的分支 commit 记录比较多的话会使得 master 分支的log 版本会非常多,使用 git log 做追溯的时候比较难抓住重点。

期望master分支内只展示提交 Merge Request 时的描述内容,将全部的 commit 合并成为一条记录,相当于git merge --squash && git commit

经过各种试验,最终发现gitlab merge 时使用的方法是(根据版本路径可能会稍有不同,我这使用的版本是 GitLab Community Edition 10.7.3

找到下面这个文件
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/git/repository.rb

将 rugged_merge 内 option 的配置做如下修改
parents: [our_commit, their_commit] 去掉 their_commit
修改后即为

         options = {
            #parents: [our_commit, their_commit],
            parents: [our_commit],
            tree: merge_index.write_tree(rugged),
            message: message,
            author: committer,
            committer: committer
          }

修改完毕之后记得重启gitlab gitlab-ctl restart

下面就可以测试效果了
比如新建一个分支,并在该分支内提交多次commit。
然后在gitlab上提交如下的 Merge Request


屏幕快照 2018-11-02 上午12.58.23.png

merge 成功后,在master分支使用 git log 查询,最新的一次 commit 记录展示为在master上展示的内容

相关文章

网友评论

      本文标题:gitlab merge方式修改

      本文链接:https://www.haomeiwen.com/subject/dtzfxqtx.html