Emm*_*rli 7 git github gitlab git-fork
我想分叉一个 GitLab 存储库(不是我自己的,是公共的),这样我就可以对我的分叉进行更改,并在有上游更新时使用 GitHub 桌面更新该分叉。
到目前为止,我所做的是:
(1) 在 github.com 上导入了 GitLab 存储库 -> 导入存储库 ,该存储库在 GitHub 上显示为我自己的存储库(实际上不是),而不是作为分支(我希望它是)
(2) 在 GitHub 桌面上,添加存储库 -> 在我的本地计算机上从 (1) 克隆 GitHub 存储库,对其进行更改,将更改推送到我的 GitHub 存储库(好)
(3) 如果对上游 GitLab 存储库进行任何更改,我无法将它们合并到我的 GitHub 存储库中。事实上,后者不被视为分叉,并且它不以任何方式连接到上游 GitLab 存储库。通常我会在 GitHub 桌面上使用“选择要合并到 master 的分支”,选择上游分支,然后合并更改。
(4) 我尝试了“git remote add upper {gitlab repo}”,但这没有改变任何东西。
(5) 也尝试过,或者直接在我的本地计算机上克隆 GitLab 存储库,对其进行更改,但推送我的更改会尝试将它们推送到 GitLab 上,但我不能这样做,也不想这样做,因为存储库不是'我的。
不幸的是,使用 Gitlab 和 GitHub 网站无法实现您所要求的内容。您可以做的是在本地添加上游远程并手动合并更改。
您在步骤 4 中所做的已经是朝着正确方向迈出的一步。为了合并上游,您需要做的是获取并合并。像这样:
git remote add upstream {gitlab repository}
Run Code Online (Sandbox Code Playgroud)
现在获取上游。这将从 Gitlab 存储库下载提交、文件和参考。
git fetch upstream
Run Code Online (Sandbox Code Playgroud)
然后您可以将上游的分支合并到本地存储库中。请注意,您可能必须解决冲突。
git merge upstream/master
Run Code Online (Sandbox Code Playgroud)
要发布更改,请将它们推送到原点。在本例中是 GitHub。原始远程是默认命名空间,这意味着当您拉取分支时master(例如使用 )git pull master,将拉取 GitHubmaster分支。
git push
Run Code Online (Sandbox Code Playgroud)
资料来源: