云服务器内容精选

  • 如何解决代码提交冲突? 当代码提交冲突产生时,您可以将远程代码仓库拉取(pull)到本地仓库的工作区,这时Git会将可以合并的修改内容进行合并,并将不能合并的文件内容进行提示,开发者只需要对提示的冲突内容进行修改即可再次推送到远程仓库(add → commit → push),这时冲突就解决完毕了。 如下图所示,在做拉取(pull)操作时,Git提示您,一个文件合并时产生了冲突。 在修改冲突文件时应该考虑清楚,必要时要与冲突方联系协商解决,避免覆盖他人代码。 git pull可以理解为 git fetch 的操作 + git merge的操作,其详细说明如下: git fetch origin master #从远程主机的master分支拉取最新内容 git merge FETCH_HEAD #将拉取下来的最新内容合并到当前所在的分支中 在merge的时候,会将有冲突不能合并的内容做出提示。
  • 如何避免冲突的产生? 代码提交、合并冲突经常发生,但只要在代码开发前,做好仓库预处理工作,就能有效的避免冲突的产生。 在示例:冲突的产生与解决中,开发者02(02_dev)成功的解决了提交远程仓库时遇到的冲突问题,此时他的本地仓库与远程仓库的最新版本内容是一样的,但是开发者01(01_dev)本地仓库和远程仓库仍然是有版本差异的,此时如果直接推送本地仓库(push),仍然会产生冲突,那么如何避免呢? 方式一(推荐新手使用): 如果开发者本地的仓库不常更新使用,在做本地修改时,可以重新clone一份远程仓库的内容到本地,修改后再次提交,这样简单直接的解决了版本差异问题,但缺点是如果仓库较大、更新记录较多,clone过程将耗费一定的时间。 方式二: 如果开发者每天都要对本地仓库进行修改,则建议在本地新建一条开发分支进行代码修改,在要提交远程仓库时,切换到master分支并将远程仓库的最新master分支内容拉取到本地,在本地进行分支合并,对产生的冲突进行修复,成功将内容合并到master分支后,再提交到远程仓库。
  • 如何避免冲突的产生? 代码提交、合并冲突经常发生,但只要在代码开发前,做好仓库预处理工作,就能有效的避免冲突的产生。 在示例:冲突的产生与解决中,开发者02(02_dev)成功的解决了提交远程仓库时遇到的冲突问题,此时他的本地仓库与远程仓库的最新版本内容是一样的,但是开发者01(01_dev)本地仓库和远程仓库仍然是有版本差异的,此时如果直接推送本地仓库(push),仍然会产生冲突,那么如何避免呢? 方式一(推荐新手使用): 如果开发者本地的仓库不常更新使用,在做本地修改时,可以重新clone一份远程仓库的内容到本地,修改后再次提交,这样简单直接的解决了版本差异问题,但缺点是如果仓库较大、更新记录较多,clone过程将耗费一定的时间。 方式二: 如果开发者每天都要对本地仓库进行修改,则建议在本地新建一条开发分支进行代码修改,在要提交远程仓库时,切换到master分支并将远程仓库的最新master分支内容拉取到本地,在本地进行分支合并,对产生的冲突进行修复,成功将内容合并到master分支后,再提交到远程仓库。
  • 合并请求列表 在仓库详情的“合并请求”页签中,可以看到“合并请求列表”页面。 可以切换、查看不同状态的合并请求。 通过单击请求标题可以进入合并请求详情页。 可以查看请求的简要信息,包括:涉及的分支、创建时间、创建人。 提供了多条件维度的查找功能。 在左上方有新建合并请求入口。 开启中:代表该请求已进入检视或合并阶段,分支未合并。 已合并:代表该请求已经完成审核,并完成分支合并的动作。 已关闭:代表该请求被取消,分支未产生实际合并。 所有:显示所有状态的合并请求。
  • 新建合并请求 假设管理员已经设置好了分支合并规则,当您在开发分支上完成了功能开发,并需要发起合并请求时,请按照以下流程操作。 进入目标仓库详情页。 切换到“合并请求”页签。 单击“新建”按钮,选择要合并的分支。 如上图在本示例中将刚完成开发任务的Dev分支合并到master分支中。 支持源分支选择Fork仓库的分支。 单击“下一步”按钮,此时系统会检测两条分支是否有差异。 如果分支没有差异,系统会做出提示,且不能新建合并请求。 如果分支存在差异,则进入如下“新建合并请求”页面。 在“新建合并请求”页面的下方可以看到两条分支的文件差异对比详情、要合并分支的提交记录。 根据下表参数说明,填写页面信息。 表1 参数说明 参数 说明 更改分支 单击可返回上一步更改需要合并的分支。 模板 若仓库管理员或所有者已为该仓库创建合并请求模板,您可以直接选择使用模板。 标题 输入合并请求的标题。 描述 会结合分支合并情况与要合并分支的提交(commit)备注生成默认值,您可以根据项目情况进行修改。 关联工作项 可选择将合并动作关联到某个工作项,以起到自动改变工作项状态的作用。 合并人 在合并请求满足合入要求时,一般是所有审核人审核通过、所有问题都被解决(可设置不解决也能合并),合并人有权限执行合并操作(单击按钮)、也有权限关闭合并请求。 检视人 被指定参与合并分支检视,可以提出问题给发起人。 评审人 被指定参与合并分支评审,可以给出审核意见(审核通过、拒绝),也可以提出问题给发起人。 合并后删除源分支 可选择是否合并后删除源分支,初始会带入合并请求设置中预设状态。 Squash合并 开启Squash合并,可使基本分支的历史记录保持干净,并带有有意义的提交消息,而且在必要时可以更简单地恢复,详情请参考Squash合并。 单击“新建合并请求”按钮,可以完成合并请求的提交,页面会跳转到该“合并请求详情页”。 在合并请求详情中,可以看到合入条件达成的状态、合并人、检视人、审核人、所关联的工作项等信息,同时可以查看可留下评审意见,可标注评审意见为待解决状态,并可看到该合并涉及的所有动态。 “提交记录”:可以看到源分支的相关提交记录。 “文件变更”:可以看到此次合并的变更内容,并可具体筛选出新增、修改、删除、重命名等变更种类。 “流水线”:可以看到门禁流水线的信息。 当发起分支合并请求时,其相关人员(审核人、合并人)会收到提醒邮件。 单个文件差异超过5000行、差异文件个数超过100个时,建议使用客户端合并后,推送到代码托管。
  • 对合并请求进行检视、审核与合入 当检视人、审核人、合并人收到系统的分支合并请求通知邮件时,请按以下步骤进行操作。 进入目标仓库详情页。 切换到“合并请求”页签,单击目标合并请求名称,查看详情。 对目标合并请求进行检视。 检视人与审核人均可对合并请求进行检视并给予检视意见,若无修改意见,检视人可单击“检视通过”完成检视。 对目标合并请求进行审核。 审核人可通过单击“拒绝”或“通过”对合并请求进行审核。 通过合并请求门禁。 表2 合入条件说明 合入条件 说明 代码合并冲突 当源分支代码与目标分支代码产生合并冲突时,需要先解决冲突才可进行下一步操作,解决代码冲突可参考解决合并请求的代码冲突。 评审意见门禁 当发起人解决所有检视人或审核人的评审意见后,门禁显示通过,更多门禁详情请参考评审意见门禁详解。 流水线门禁 当最新commit或者预合并commit拉起并成功执行流水线时,门禁显示通过,更多门禁详情请参考流水线门禁详解。 E2E单号未关联 当合并请求关联工作项后,门禁显示通过,更多门禁详情请参考E2E单号关联门禁详解。 星级评价未通过 当指定人员进行星级评价后,门禁显示通过,更多门禁详情请参考星级评价门禁详解。 检视门禁 当已检视的检视人数达到最小检视人数时,门禁显示通过,更多门禁详情请参考检视门禁详解。 审核门禁 当已审核的审核人数达到最小审核人数时,门禁显示通过,更多门禁详情请参考审核门禁详解。 对目标合并请求进行合入。 当发起人通过以上合入条件后,合并人可单击“合入”按钮进行合入,反之,合并人可单击“关闭”将请求关闭。