gitlab如果我担心,请求将branch-A合并到develop(后面的3个提交)?

时间:2017-03-02 08:09:13

标签: merge gitlab

在gitlab中创建合并请求时,我经常收到一条消息: 请求将branch-A合并到develop([x]后面提交) gitlab想告诉我什么? 我应该担心还是需要修理一下(什么)?

3 个答案:

答案 0 :(得分:7)

在项目中打开合并请求一段时间后,由于其他人将其更改合并到其中,您尝试合并的分支版本变得过时是正常的。

Gitlab通过显示您更新的分支版本在远程分支后面的数量来帮助您。

落后不会对合并行为造成任何阻碍,但是rebase您在合并后的分支机构上的提交是一种常见做法。这将使您的合并请求更新,方法是按时间顺序将提交放在已经在该分支中的提交之后。这种方法使得负责合并的人的工作更容易,因为提交者本身已经解决了可能发生的任何冲突。

要按照您提出的方案执行rebase,请执行以下操作:

# Add a remote named `upstream` pointing to the original repository
git remote add upstream https://gitlab.example.com/example/your_project.git

# Fetch the latest commmits from `upstream`
git fetch upstream

# Checkout our branch-A
git checkout branch-A

# Rebase our branch on top of the `upstream/develop` branch
git rebase upstream/develop

# If needed fix any conflicts that may have appeared and then `git rebase --continue`  

# Push the changes to the branch of your merge request
git push --force origin branch-A

注意: 推送时需要使用--force,因为您正在重写分支的提交历史记录。

答案 1 :(得分:1)

除了@alejdg的答案, 防止这种情况

[-force]可能导致远程存储库丢失提交;小心使用。

您还可以使用比--force-with-lease更安全的--force, 如果在您的rebasepush --force more information

之间插入了其他提交

答案 2 :(得分:0)

除了上面的答案外,我通常还会执行以下操作以重新建立本地分支并进行推送。如果我是贡献者,通常我会将远程来源添加到本地git repo中。

git pull
git checkout <your-branch>
git rebase origin/<remote-branch>
git push --force origin <your-branch>