如何在执行合并请求时重新建立分叉的回购 - Gitlab
How to re-base a forked repo when doing a merge request - Gitlab
我分叉了一个存储库并在本地进行了一些更改。我提交了这些更改,但现在我想将这些更改合并回上游存储库。我在 Gitlab 上提出了合并请求,但它失败了。显然我需要重新设置分叉的回购协议。
- 这是否意味着上游存储库有新的变化?
- 我在做合并请求之前对比了分支,为什么没有显示冲突?
问题是,你比较的是什么?
我猜你分叉了回购协议,克隆了你的分叉,然后将你的本地分支与你的远程分支进行了比较。
但如果上游有变化,又是一锅鱼。
使用 git remote add ...
将上游存储库作为第二个远程存储库添加到您的本地存储库并获取其更改,然后您可以将所有三个分支、上游分支、您的分支分支和您的本地分支相互比较,并相应地重新设置您的分支在创建合并请求之前针对上游。
我不确定我是否理解你的问题,但我想你想在 Pull Request 之前将一些提交合并为一个。如果这是你的问题:
在您的本地存储库中:
git rebase -i HEAD~n (n is the number or commits to be merged)
在此之后,编辑程序将向您打开 "program" 操作
在前 n 行中,您告知您想要的命令:在您的情况下,您可能放置 squash
来合并提交。您可以看到命令列表。
Here你可以看一个很好的视频一步一步解释。
之后,就是git push
。如果您在合并提交之前推送,请使用 git push --force
,但请确保在使用 --force
时您在做什么
我分叉了一个存储库并在本地进行了一些更改。我提交了这些更改,但现在我想将这些更改合并回上游存储库。我在 Gitlab 上提出了合并请求,但它失败了。显然我需要重新设置分叉的回购协议。
- 这是否意味着上游存储库有新的变化?
- 我在做合并请求之前对比了分支,为什么没有显示冲突?
问题是,你比较的是什么?
我猜你分叉了回购协议,克隆了你的分叉,然后将你的本地分支与你的远程分支进行了比较。
但如果上游有变化,又是一锅鱼。
使用 git remote add ...
将上游存储库作为第二个远程存储库添加到您的本地存储库并获取其更改,然后您可以将所有三个分支、上游分支、您的分支分支和您的本地分支相互比较,并相应地重新设置您的分支在创建合并请求之前针对上游。
我不确定我是否理解你的问题,但我想你想在 Pull Request 之前将一些提交合并为一个。如果这是你的问题:
在您的本地存储库中:
git rebase -i HEAD~n (n is the number or commits to be merged)
在此之后,编辑程序将向您打开 "program" 操作
在前 n 行中,您告知您想要的命令:在您的情况下,您可能放置 squash
来合并提交。您可以看到命令列表。
Here你可以看一个很好的视频一步一步解释。
之后,就是git push
。如果您在合并提交之前推送,请使用 git push --force
,但请确保在使用 --force