我在github中有一段代码(commit A),一个同事复制到了gitlab(commit D)。假设两者都是各自的main
。然后不同的提交在它们之上。
= A --- B --- C (Github main)
= D --- E (Gitlab main)
这里,=
表示Gitlab中保存了GitHub的历史。
现在我想在Gitlab中提交C
,一个简单的方法是从C
复制内容并提交F
(我还将gitlab中的main
作为temp
分支移动到了temp
分支)。
= A --- B --- C (Github main)
\
= D --- E --- F (Gitlab main)
\
(Gitlab temp)
除了提交F
,还有更好的方法吗(比如从Github保存历史)?
理想情况下,我正在寻找:
= A --- B --- C (Github main) // remains same
= A --- B --- C (Gitlab main)
= D --- E (Gitlab temp)
1条答案
按热度按时间gev0vcfq1#
首先,你可以创建一个本地仓库,其中有两个远程仓库,一个代表GitHub仓库,另一个代表GitLab仓库。
这样,您就可以使用
git
命令与存储库进行交互。具体来说,您可以将一个合并到另一个中。合并
您可以从两个存储库的
main
分支创建两个分支(github_main
和gitlab_main
):请注意,
github_main
是在gitlab_main
之前创建的,这意味着分支gitlab_main
当前已 checkout (当前 checkout 的是您要对其进行更改的分支)。然后,您可以将
github_main
合并为gitlab_main
:这将创建一个新的合并提交到你的当前分支(
gitlab_main
),其中包含两个祖先:两个分支的HEAD
提交。在这一点上,您可能需要检查您的更改,例如。关于
git log --all --graph
之后,您可以将更改推送到
gitlab
远程。用力推一个到另一个
如果你只是想将GitLab上的
main
更改为与GitHub上的main
分支相同,只需从GitLab checkout 分支并将其推送到GitHub。因为你正在重写历史,你需要使用一个强制推送: