我正在尝试从命令行合并合并请求(Gitlab)。
在处理完一个虚拟存储库后,我知道如果我有权限合并合并请求,我可以通过命令行直接合并。 / p>
我首先克隆了本地系统中的上游存储库。之后,我在我的分支存储库中进行了更改,并为此创建了合并请求。
当使用这种方法手动尝试从命令行合并请求时,我得到了一个额外的提交,即合并提交(-no-ff)。
git fetch <Fork_Repo_URL> <Fork_Repo_Branch>
git checkout -b <Branch_Name> FETCH_HEAD
git fetch origin
git checkout origin/master
git merge --no-ff <Remote_Name>-<Branch_Name>
git push origin master
注意:以上命令是从克隆的上游存储库中使用的。
现在,我想执行以下操作而不克隆上游存储库,而是仅向分叉存储库添加上游远程操作。
我遵循了gitlab文档中提到的所有手动合并请求的步骤,但是令我惊讶的是,尽管合并请求是在使用这些命令后合并的,但是我看不到任何合并提交。
git remote add central <Central_Repo_URL>
git fetch origin master
git checkout -b my_master FETCH_HEAD
git fetch central
git checkout central/master
git merge --no-ff my_master-master
git push central master
那么,有什么方法可以通过在派生的存储库中配置一个远程(我拥有权限)来合并合并请求,以及生成合并提交吗?
我也尝试过这种方式。
git fetch central
git checkout central/master
git merge --no-ff origin/master
git push central master
我也尝试过提交修改,重新设置。
答案 0 :(得分:0)
我从上面torek的评论中找到了解决方案。实际上是通过
git checkout central/master
我要转到分离的HEAD ,退出节点后,此模式下的所有提交都会丢失。
所以最好的解决方案应该是创建一个本地分支,该分支可以跟踪名为 central / master 的上游远程服务器。(请忽略我的分支名称)
git checkout -b centralMaster central/master
现在,完成上述所有步骤后,我们可以轻松解决此问题,并且也无需进行快速前向合并提交。
git checkout -b centralMaster central/master
git fetch central
git fetch origin
git merge origin/falcondev --no-ff -m "<Message>"
git push central centralMaster:master
现在上述所有问题都可以轻松解决。
如果我在这些步骤上有任何错误,请发表评论。