我可以从我的 GitLab 帐户为 GitHub 上托管的项目做出贡献吗?

Can I contribute to a project hosted on GitHub from my GitLab account?

我是 Git 的新手,刚开始使用我非常喜欢的 GitLab。我想参与的项目之一托管在 GitHub 上。我可以通过 GitLab 帐户为项目做贡献吗?这是一种不好的做法吗?有什么限制吗?

您可以在任何需要的地方使用自己的 git 存储库。 GitHub、GitLab、BitBucket、VSTS、本地文件等

但是,为了回馈 GitHub 存储库,您可能会被要求从 GitHub 上的原始存储库的分支发出拉取请求。

好消息是,您可以随时在任何地方工作,并将 GitHub 分支设置为 "remote",并在您准备好提出拉取请求时推送给它

从技术上讲是的,但您可能会发现让其他人一起玩并不容易。

理论上,GitHub 和 GitLab 都得到 git 的支持。 git 的工作方式是您进行更改,然后将这些更改的补丁发送给维护者,或者将您的更改放在可公开访问的 URL 并要求他们从您那里提取。它称为拉取请求,顾名思义。从字面上看,这只是您发送给某人的消息,询问他们是否会从您的分支机构执行 git pull。 git 客户端包含一个命令 git request-pull,它将格式化适合默认模板的消息,概述哪些提交已准备就绪,您可以将其用于此目的。

实际上,GitHub 和 GitLab 上的人通常不会这样工作。 GitHub 用户使用 GitHub-style "pull requests",GitLab 用户使用 GitLab-style "merge requests"。这些只是网站界面中的按钮,可以使用他们自己的自定义 API。 GitHub 风格的拉取请求必须来自 GitHub 上托管的其他项目,而 GitLab 风格的合并请求必须来自 GitLab。你没有地方可以在 GitLab 或 GitHub 上附加你的补丁。无法转到 GitHub 上托管的项目并通过粘贴更改所在的 URL 来创建拉取请求。‡

† 这没有特殊的技术原因。他们就是这样写的。

‡ 您可以将这些内容转储到问题评论中,但是除了项目维护者告诉您他们不接受补丁并且他们不会通过添加来真正拉动之外,您的里程可能会有所不同您的遥控器并执行 git pull,他们不接受不使用 GitHub 的人的任何更改。