问题标签 [merge-request]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Git Rebase 无限循环
场景:我有两个分支:develop
和feature_xyz
. 我正在通过Gitlab中的合并请求集成feature_xyz
到其中,但我面临一个非快进场景,因此我必须重新定位到本地,然后再次推送和请求。develop
develop
feature_xyz
但是我面临一个循环 rebase 问题:在 rebase develop
into之后本地feature_xyz
,当我尝试将本地feature_xyz
分支推送到远程时,我收到一个错误,说我的本地分支落后于远程分支。将远程重新定位到我的本地feature_xyz
分支并推送它工作得很好,但是如果我再次尝试重新定位develop
到我的feature_xyz
本地分支,如果我尝试推送到feature_xyz
远程分支,我将面临同样的错误。
我怎样才能解决它而不必强制或删除远程并再次推送本地?
PS.:合并不是一种选择。
git - 创建合并请求后,我还可以在分支上添加提交吗?
我有一个分支feature/xyz-functionality
,我想与develop
分支合并。我是 3 天前创建的,我没有合并权限。
另一方面,我的团队负责人忙于其他事情,在此期间我编写了更多需要推送的脚本,因为我创建了合并请求,所以我害怕推送提交。
那么什么是好的做法,我应该推动提交呢?我可以吗?或者我应该创建新分支然后推送它?
请指导我,我将不胜感激。太感谢了。
merge - Gitlab将“合并请求”与提交合并
我相信这是个愚蠢的问题,但我不明白我应该如何使用gitlab 合并请求推送选项
我有这种情况:
- 我有从开发到主的开放合并请求
- 我对开发分支进行了一些更改,并使用正确的选项将它们推送到 gitlab 服务器
- 我希望在此提交的管道将成功合并 MR 之后,但我在 gitlab MR 页面上收到此消息:
因此,推送似乎会将 MR 设置为在成功后允许合并,并由于来自同一推送的提交而立即中止它。我还尝试了使用 /merge 的快速操作,但结果相同。我知道有 gitlab API,但我不能使用它。有谁知道我做错了什么?
编辑:
作为接受的答案建议添加目标分支有帮助,但我还需要添加ci.skip:
git - 正在重新调整合并分支的最佳策略
我有一个父分支和子分支。
当我想将子分支合并到父分支时,据说重新建立分支是合并的最佳方式。
如果我们重新设置在另一个分支中所做的所有更改将进入当前子分支,对吗?
那么当有人想查看子分支中所做的新更改时,另一个分支的更改将太正确。
有人可以对 Rebasing vs Pull request vs Merge 有所了解吗?
我正在尝试找到合并分支的最佳方法。
continuous-integration - 如何让 Gitlab CI 管道始终运行某些作业,而其他作业仅在合并请求时运行?
TL/DR:
我的目标是拥有一个 Gitlab (CE-12.4.2) 管道,它只在合并请求和其他作业上执行一些作业(在合并请求和所有正常推送上)。外观必须如何.gitlab-ci.yml
做到这一点?
我的用例: 我有一个运行大量作业(测试、验证、dep、构建、文档...)的大型管道。现在我添加了一个暂存环境(使用 kubernetes)并让管道构建一个新映像并将其部署在暂存环境中。这使我可以立即打开更改后的(网络)应用程序并查看更改的行为和外观,而无需在本地检查它们。现在构建一个映像并将其部署到登台对于每次推送来说都需要大量资源,所以我只希望部署在有人创建合并请求供我审查时进行登台。
一个非常简单的例子:
对于所有正常推送,install
应test
执行作业。
对于合并请求,应执行作业install
、、和。test
build-image
deploy-staging
我尝试过的: Gitlab 具有only: [merge_requests]
在作业上定义的此功能,这导致该作业仅在为合并请求执行管道时才执行。听起来正是我正在寻找的东西,但有一个很大的收获。一旦该属性应用于管道中的一个作业,该管道中没有该属性的所有其他作业将在合并请求中执行时从管道中删除。起初这对我来说似乎是一个错误,但实际上是记录在案的行为:
为了将所有其他工作重新引入合并请求的管道,我必须申请only: [merge_requests]
所有其他工作。这种方法的问题在于,现在这些常规作业不再为正常的 git-push 执行。而且我无法将这些常规作业重新引入管道以进行正常推送,因为 Gitlab 不支持only: [always]
或类似的东西。
现在我也注意到only
语法是弃用的候选者,应该更喜欢rules
语法,所以我看了一下。这种方法存在多个问题:
rules
检测管道是否针对合并请求执行的唯一方法是评估与合并请求相关的变量,例如$CI_MERGE_REQUEST_ID
. 不幸的是,这些变量仅在使用时才存在only: [merge_requests]
,这将重新引入上述问题。- 规则只允许有条件地应用其他属性,所以我仍然必须使用
only
,except
或when
属性来实际从管道中删除或添加作业。不幸的是,Gitlab 不支持only: [never]
or之类的东西when: never
,所以我无法实际删除或添加作业。
我还尝试让作业依赖于另一个使用need
或dependencies
属性,这似乎对作业是否包含在管道中没有影响。
我拼命尝试的最后一件事是始终包括所有作业,只需将它们标记为when: manual
通过按下按钮手动触发即可。这有点工作,但非常乏味,因为部署到登台是一个多作业过程,每项作业都需要相当长的时间才能完成。所以我会看到一个合并请求,按下第一个作业的按钮,等待 5 分钟,按下下一个按钮,再次等待 5 分钟,然后才能使用暂存。对于许多小的合并请求,这会占用我很多时间并且不是一个有效的解决方案。我也不能只将这些作业中的第一个标记为手动,因为 Gitlab 将跳过该作业并无序执行后面的作业(同样,在处理手动触发的作业needs
时dependencies
似乎对此没有影响)。
我有点困惑的是,在网上搜索后,我发现没有人有同样的问题。要么我是唯一一个只想为合并请求执行某些作业而不排除所有其他作业(这似乎极不可能)的 Gitlab 用户,要么我错过了一些明显的东西(这似乎更有可能)。我错过了什么还是 Gitlab 真的不支持这个用例?
gitlab - Gitlab:是否可以过滤多个作者的合并请求?
我们有 monorepo,我的团队负责存储库的 20 个包/文件夹中的 3 个,但有时我们需要接触其他包/文件夹。为了审查队友的变化,每个成员都应该添加“team_label”,以便能够按此标签进行过滤,或者保持打开的几个选项卡与每个作者/团队成员的合并请求。
最好是由其中一位作者过滤类似这样的 MR:
作者:用户名1 或作者:用户名2 或作者:用户名3
我们正在使用 GitLab 企业版 12.6.2-ee
upd:在 gitlab 文档评论中讨论过,即使使用高级搜索也无法过滤合并请求
高级搜索当前没有您在专用问题或 MR 搜索中使用的构面
https://docs.gitlab.com/ee/user/search/index.html#comment-4776091890
功能建议:
git - github merge "pull-request" 和 gitlab merge "merge-request" 的区别
为了更好地理解这些操作,我想知道 github 或 gitlab 究竟是如何合并这些请求的。压缩、变基、合并时,详细执行了哪些 git 命令?
gitlab - 合并请求时自动选择默认分支
我想知道在 Gitlab 中是否可以在我们推送合并请求时创建规则。
例如,对于源分支:HF-458,我希望在推送合并请求时自动选择目标分支:hot_fixe_rct。
谢谢,
gitlab - 在 GitLab 中合并之前如何修改合并请求的代码?
场景如下:用户打开了一个合并请求,向我的代码添加了一个新特性。然而,他们的代码包含一些错误。我知道如何修复适当的部分,但我更愿意让我的存储库没有已知问题的代码。因此我想在合并之前修改他们的代码。
我知道我也可以手动复制更改,但我仍然想为打开合并请求的用户提供他们的贡献。