gitlab merge方式修改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gitlab merge方式修改相关的知识,希望对你有一定的参考价值。

参考技术A 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
修改后即为

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

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

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

git gitlab 使用 提交代码解决冲突

1、更改完代码后,git push 发生错误

技术分享图片

 

 

注: 此时,使用 git pull: 更新代码,git 会自动merge不同的更新,

   a.  如果git 自动merge成功,再进行 git push操作就会成功。

   b.  如果git 自动merge失败,使用git status可以查看哪个文件 merge失败,需要手动修改冲突地方,再进行git add git commit操作,之后再git push

 

But,这种方法提交后,就会在提交记录里显示 merge: *********************,而git rebase就能解决这种问题,解决方法如下

 

2、git branch mywork: 新建分支(git branch查看所有分支)

此时,修改的内容,在mywork分支里有体现

技术分享图片

3、git log: 查看本地提交

技术分享图片

4、回退自己的提交(master分支上的,此时mywork分支保留了更改)

a. git reset: 回退自己的提交

b. git checkout: 还原修改的内容

技术分享图片

5、git pull: 同步最新代码

技术分享图片

6、git checkout mywork:  切换到mywork分支

7、git rebase master:  将master的更新,同步到mywork分支

     注: 这一步,是最重要的,git此时会自动merge master分支和mywork分子

     a. 如果自动merge成功,就不用管了

     b. 如果自动merge失败,此时git status查看哪个文件merge失败,打开该文件,手动修改冲突,执行git add 文件名 -> git rebase --continue

8、git log查看下,分支本地提交

技术分享图片

 

9、git checkout master:  切换到master分支

10、git rebase mywork 把mywork最新代码merge到master

技术分享图片

11、git push -u origin 提交。 此时,就不会出现 merger: *******************

12、操作流程图,如下

技术分享图片

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sea_snow/article/details/53388894
 
另: commit 后 使用git fetch origin --prune  然后 git rebase -i refs/remotes/origin/master 
或(不推荐) git merge origin/master -v
最后 手动解决冲突  使用 git add 然后 git rebase --continue 
最后 使用git push origin refs/heads/master:flin-002 
然后触发分支自检 pipeline 验证代码编译,然后提交 mergeRequest  
等待 其他人 使用git lab 验证合并
 
 

以上是关于gitlab merge方式修改的主要内容,如果未能解决你的问题,请参考以下文章

git 代码提交merge request

GitLab revert 导致新提交 merge 代码丢失(diff丢失)

GitLab revert 导致新提交 merge 代码丢失(diff丢失)

GitLab revert 导致新提交 merge 代码丢失(diff丢失)

gitlab修改ip

gitlab连接并批量修改数据库账号邮箱地址(上)