精华内容
下载资源
问答
  • 使用gitlab合并代码总结

    千次阅读 2020-01-17 16:56:26
    注意:使用idea提交合并到远程分支后,使用 compare with branch 步骤:

    注意:使用idea提交合并到远程分支后,使用 compare with branch

    步骤:

     

     

     

    展开全文
  • 今天有同事告诉我,在gitlab发起 merge request 合并代码之后,发现合并过来的代码不见了。于是我又尝试着回滚,重新合并,发现确实存在这个问题,明明已经显示合并成功了,为啥代码不见了呢?百思不得其解。怎么...

    error: dst refspec dev matches more than one.

    今天有同事告诉我,在gitlab发起 merge request 合并代码之后,发现合并过来的代码不见了。于是我又尝试着回滚,重新合并,发现确实存在这个问题,明明已经显示合并成功了,为啥代码不见了呢?百思不得其解。

    怎么解决?

    首先查看了分支图,发现代码确实有合并,但是从gitlab平台端查看代码,确实发现代码未合并过来,有点晕...

    gitlab 服务问题?

    尝试重启gitlab服务,docker 重启一下gitlab 服务,问题依旧如此...

    修改一下分支代码文件

    尝试在gitlab WEBIDE 修改文件,然后提交,gitlab提示提交失败,从异常信息来看似乎看不出来什么

    把代码拉回到本地,尝试

    ...

    发现问题

    4720feef937830cd2472faaf2a8d2e3d.png

    提交代码报错

    本地 push 的时候,控制台报了异常,当时也没仔细去阅读。

    老规矩,遇到问题上Google ,果不其然,遇到类似问题的不止我一个。

    原因就是因为 我们的仓库,branch 和 tag 出现了相同名字的分支或标签

    解决方案:

    1、可以通过删除重名的 tag 或者 branch

    2、push 的时候使用完整的推送路径

    git push origin refs/heads/dev

    总结

    回头想想,其实从异常信息已经可以看出一些端倪了。

    git -c credential.helper= -c core.quotepath=false -c log.showSignature=false push --progress --porcelain origin refs/heads/dev:deverror: dst refspec dev matches more than one.
    6e0e44327ca0f4202a710d80f23010b4.png

    查看 .git 目录

    展开全文
  • Gitlab合并代码的几种情况

    千次阅读 2019-03-27 23:50:52
    开发者权限提交代码并请求合并如下图新建一个 Issue点击提交Issue创建在问题界面点击 Create merge request创建一个合并请求Issue界面点击之后...
        

    开发者权限提交代码并请求合并

    如下图新建一个 Issue点击提交

    640?wx_fmt=jpeg
    Issue创建

    在问题界面点击 Create merge request创建一个合并请求

    640?wx_fmt=jpeg
    Issue界面

    点击之后会跳转至 合并请求页面

    640?wx_fmt=jpeg
    合并请求页面

    正常的操作应该是把新建的分支 7-_1拉到本地然后修改后推送到远端

    640?wx_fmt=jpeg
    本地合并方式

    为了方便起见,直接使用 在Web IDE中打开

    640?wx_fmt=jpeg
    web Ide修改
    640?wx_fmt=jpeg
    提交请求
    在修改了这个新建的分支之后回到 合并请求页面就可以看到其中的内容发生了改变

    640?wx_fmt=jpeg
    分支提交之后的页面

    之前是询问是否要创建一个新文件,现在直接就是问你这不是已经完成了这个半成品了,点击 Resolve WIP status提示信息就会变成已可自动合并。 请具有仓库写入权限的用户来合并此请求

    640?wx_fmt=jpeg
    开发者看到的页面

    下面登录管理员账户查看,可以看到合并按钮已经变成绿色了

    640?wx_fmt=jpeg
    管理员看的的页面

    两个合并先后修改了文件不同位置

    这个情况比较简单,正常的合并操作也不会出现冲突,所以不赘述了。

    两个合并先后修改了文件同一个位置

    我们创建两个问题单:两个合并先后修改了文件同一个位置_1  和两个合并先后修改了文件同一个位置_2并为他们分别拉取分支,创建合并请求

    640?wx_fmt=jpeg
    创建两个合并请求
    首先在第一个里面修改里面的一个文件并完成提交

    640?wx_fmt=jpeg
    修改1号请求
    640?wx_fmt=jpeg
    提交一号请求

    同理,在第二个页面也修改第五行

    640?wx_fmt=jpeg
    修改2号请求
    然后管理员进行合并的同意

    先同意提交1

    640?wx_fmt=jpeg
    管理员同意一号请求

    然后查看提交2

    640?wx_fmt=jpeg
    管理员查看2号请求

    我们就可以看到出现冲突了,可以本地合并

    640?wx_fmt=jpeg
    本地合并方式

    也可以直接在页面进行解决冲突

    640?wx_fmt=jpeg
    页面选择进行解决合并

    同意哪个改哪个,如果都不同意就自己改

    640?wx_fmt=jpeg
    自行解决

    去除多余的 〈〈〈符号就好了

    640?wx_fmt=jpeg
    合并方法
    640?wx_fmt=jpeg
    正常提交

    之后就可以正常合并了

    展开全文
  • code review 的目的是提高代码质量,减少开发bug,俗话说,三人行必有我师,众人...gitlab提供了两种代码merge机制:在本地将源分支(Source branch)代码合并到目标分支(Target branch),然后Push到目标分支(Target ...

    code review 的目的是提高代码质量,减少开发bug,俗话说,三人行必有我师,众人拾柴火焰高。

    gitlab提供了code review机制,对基于gitlab的code review,直接以具体例子的形式做个实践总结。

    gitlab提供了两种代码merge机制:

    1. 在本地将源分支(Source branch)代码合并到目标分支(Target branch),然后Push到目标分支(Target branch)
    2. 将源分支(Source branch)Push到远端,然后在GitLab指定目标分支(Target branch)发起Merge Request,对目标分支(Target branch)拥有merge权限的用户执行Merge操作,完成合并。
      这两种方式仅有第2种适合code review,所以我们要做的事情是设置权限,拒绝本地merge后push到远端的操作。在第2种方式中 发起merge request后,由有merge权限用户做code review,通过后执行merge操作。
      具体操作如正文

    一,分支设置

    第一步,创建项目和分支。

    分支结构和功能依据具体团队的规范来定,这里仅供参考。

    创建项目并创建分支如下

    05eb8ee8c7eb3d5068e4d089432aa41a.png

    创建分支

    其中 release为预发布分支,develop为测试分支,develop-1为开发分支。

    release,develop,master都是固定的分支,有固定的功能。

    本例中假设流程开发如下:

    1. 每次需要新feature时,从master拉取开发分支,比如develop-1。

    2. master有更新及时合并到develop-1,develop,以及release。

    3. develop-1开发完成后合并到develop,部署测试环境。

    4. develop环境测试通过后,合并develop-1代码到release环境,做预发布测试。

    5. release环境测试通过后,将develop-1代码合并到master,上线。

    第二步,设置分支merge权限

    这一步的是实现code review的关键,也就是控制分支的merge 权限。之后只有有merge权限的责任人才能submit merge请求,没有merge权限的只能提交merge请求,等待有权限的review后submit,则合并成功

    具体设置位置:

    项目首页→Settings->Repository→Protected Branches

    f714a83b1b28fb0f31b0d459f16dbeab.png

    权限设置页面

    将master,develop,release三个分支设置成只允许maintainers merge,不允许任何人push,也即在杜绝了上文说的从本地merge,push到远端的情况

    15c15765ef02a48ad361b8b35a0471ae.png

    权限设置结果

    二、具体操作

    这里描述从代码修改,提交,发起merge请求,到code review后merge submit的整体流程。

    第一步 开发分支代码修改,提交,push到远端

    feature的开发分支不做具体的保护设置,即开发人员可以修改后,add,commit,push origin,这里不做详细讲解,push之后,可以在分支页面看到相应commit日志。如下。

    1c87dcd07cc5bb0a12ba44c41265f5f4.png

    commit日志


    第二步 create merge request

    注意上图右上角有一个按钮,create merge request,发起merge请求后,进到页面

    f202636efe5c0590b96aa15c89f68747.png

    选择源分支和目标分支

    选择source branch 和Target branch,这里我选择的是develop-1到release(假设到了预上线阶段),点击compare branches and continue。

    04e49637015146a0287f1a7040e9ee4e.png

    发布merge request

    页面中选择Assignee,指定reviewer,指定人会收到邮件。下面的approvers以及Approvals required,是批准人和最少批准个数。

    填写Approvals required后,必须经过指定个数以上的人批准才能合并。

    点击submit merge request。进到merge request页面。

    第三步 code review

    收到邮件的reviewer通过merge request 页面可以看到代码修改记录,并增加commond,其他人也可以通过commond进行讨论,

    无问题可以点击merge通过或者不通过则点击右下角的close merge request。

    192e809c2354decce6be1de400b06f2b.png

    review

    第四步 查看所有merge请求

    在项目页面的merge request页面可以看到所有open状态,close状态和merged状态的merge 请求

    三、可能遇到的问题

    遇到冲突怎么办

    多个分支向一个分支合并代码等流程中,往往会形成版本冲突。此时,提交merge request后的页面如下:

    37f5fa19fff78fd0c7db6da6513d9e54.png

    冲突页面.png

    我们发现,merge按钮置灰,同时出现了resolve conflicts以及merge locally的按钮。点击resolve conflicts。出现解决冲突的页面

    20cf0339c66bd64c958127696c258f55.png

    解决冲突.png

    页面可以通过use ours指定使用当前分支(发起merge request的源分支)代码或者use theirs来指定使用目标分支代码。或者点击 edit inline直接通过编辑页面编辑(更通用)。

    104f3ed95f84d2cee7388ea80ac054ff.png

    edit inline.png

    ok,我们已经处理完冲突,点击下方submit按钮。 返回merge request页面,等待远端冲突解决完成后,merge按钮正常。

    df45e3d4b1324ca0e65c9f8a4a756ad1.png

    冲突解决完成.png

    四 总结。

    1. 关于分支设置

    以上仅是一个分支设置的示例,我们可以根据团队风格,和具体问题具体分析。

    比如多人同时开发一个需求,可能需要拉取一个feature分支后再根据该feature分支拉取个人开发分支,开发完成后和并feature再合并develop,release,master等

    2. code review 流程

    总结下code review流程

    (1)创建好 测试分支,release分支,并配置测试分支,release分支,master分支的merge权限

    (2)开发分支开发完成后push到远端,通过页面提交merge request,指定reviewer和审批人,一般指定reviewer即可。

    (3)reviewer 通过代码review,没有问题,可以点击merge,完成合并操作。如果有问题,可以发起讨论,或者直接关闭merge请求。

    code review 流程完成。

    展开全文
  • gitlab合并代码还原命令

    千次阅读 2019-12-03 16:10:54
    gitlab合并代码还原命令 git reset --hard
  • 官网从Gitlab官网的图中可以看到Gitlab支持软件开发的全流程。Gitlab环境搭建由于准备在内网中使用,所以使用的是开源版。网上有很多的搭建方式,但是为了简单直接采用官网的Docker镜像进行搭建。可以访问Docker Hub...
  • code review 的目的是提高代码质量,减少开发bug,俗话说,三人行必有我师,众人...gitlab提供了两种代码merge机制:在本地将源分支(Source branch)代码合并到目标分支(Target branch),然后Push到目标分支(Target ...
  • 开发分支是dev,将代码合并到master时可费了劲儿了,上周我们几个同事前前后后折腾了两天,还是有问题。今天上完线必须要封版了。所以务必得搞定。我之前都是用svn,用git也就近半年的时间,之前也没有合并主干代码...
  • 官网从Gitlab官网的图中可以看到Gitlab支持软件开发的全流程。Gitlab环境搭建由于准备在内网中使用,所以使用的是开源版。网上有很多的搭建方式,但是为了简单直接采用官网的Docker镜像进行搭建。可以访问Docker Hub...
  • Git又是目前当红的源码管理工具,若你的团队目前已经选用了GitLab来作为托管工具,那此文中你可以学到如何通过GitLab的Merge Request(合并请求)进行代码审查以及我们遵循的现有代码审查最佳实践来改进工作流程。...
  • 然而,gitlab上面做合并分支的操作,出现冲突时,gitlab是在源分支上面提交我们解决冲突的代码,最后点合并的时候再把源分支合并到目标分支,这就导致合并结束后,源分支与目标分支出现互相合并的效果,.
  • 用于GitLab合并请求的桌面工具 简短的 它是一个桌面工具,用于管理git和GitLab,以支持从GitLab Web UI进行的合并请求审核。 特征 Beyond Compare 3支持:启动差异工具并使用热键报告所选代码行的新讨论 自动更新和...
  • 开发的时候通常会有个基础版的项目代码,新开项目时可以以基础版进行开发。 然而在gitlab上不能直接以基础版的仓库来新建项目,所以需要我们通过命令行方式进行操作。1.下载原有gitlab源码git clone http://gitlab.*...
  • 总结:选中右键 git add commit pull 运行 ...(可以添加一些注释,比如你本次代码提交和上次相较做了什么) 4.右键-Git-Repository-Pull 下拉 (把要合并的分支和自己开发分支下拉到本地项目) 4-1.Pull - Pull Cha
  • 旧的代码服务器 git.xfce.org 现在仅用于同步镜像(因此仍可以从这里拉取代码),目前新的代码服务器是 gitlab.xfce.org,所有新代码必须推送到 gitlab.xfce.org。 对于用户和使用 Xfce 的发行版来说,更换代码托管...
  • 之前独立开发,最后合并代码时特别麻烦, 鉴于此,所以使用了版本控制工具。所以本次和大家分享下git的简单使用流程, 如果错误的地方,望大家不吝指正,以免误人子弟,感谢!首先说明情况,两...
  • 说明:每一次提交都会作为构建和部署或者测试,成功之后打个标签,这样在坐代码合并的时候,已经不需要重复构建了,因为之前已经有状态了,我们只需要配置:这个分支最后一次提交是成功的还是失败的! 说明:配置了...
  • 研发中的代码想存储起来,但是又避免研发中的代码合并,开发就会创建一个WIP的分支   WIP MR WIP MR 含义是 在工作过程中的合并请求,是一个我们在 GitLab 中避免 MR 在准备就绪前被合并的技术。只需要添加 ...
  • GitLab提交代码

    2020-03-20 11:42:45
    第一步: 新建一个分支template-ganqiangqiang 第二步: 通过git bush here将template-ganqiangqiang代码下载到本地...Create merge request,将template-ganqiangqiang合并到dev 第五步: 打开dev远程仓库和idea工...
  • 1.CI / CD 简介软件开发的持续方法基于自动执行脚本,以最大限度地减少在开发应用程序时引入错误的可能性。从新代码的开发到部署,它们需要较少的...1.1 持续集成考虑一个应用程序,其代码存储在GitLab中的Git存储库...
  • 远程实现gitlab上同一项目下代码的分支合并,并检出新分支做保护, 由dingding告知开发人员新分支代码 #!/usr/bin/python3 # @Coding: UTF-8 # @Author : LayGong # @version : 1.0.0 import json import sys from ...
  • gitlab拉取代码及提交代码流程

    千次阅读 2019-12-18 10:09:10
    以前在小公司实习,只需要简单提交代码,没有涉及代码分支,请求合并分支等,现在入职到大公司,代码规范要求较高,且多人协作开发,这一必须的技能要会,手忙脚乱之余,终于搞懂了整个流程。 第一个疑问:我从...
  • 概述日期GitLab官方博客宣布其新的版本gitlab 11.10发布,本次升级带来哪些功能呢?请追随虫虫脚步,咱们一起学习尝鲜。为增强对DevOps生命周期的管理,增加其可视化。新版本对操作面板进行增强,通过面板可以管道...
  • Git smartgit gitlab 合并的坑

    千次阅读 2017-06-30 12:45:36
    本地分支:382-issue-jesse A 本地、线上分支,测试的总合分支:unified_test_jesse B 线上源分支:php_xxx_develop C ...原来A合并到B测试了。...然后不小心,要改A的代码,结果在B上面

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 630
精华内容 252
关键字:

gitlab合并代码