git - Fork GitHub 存储库供个人使用和贡献
问题描述
我对为 GitHub 做贡献有点陌生,所以我想知道如何正确地做到这一点。
所以我下载了一个现有的存储库并基于它创建了我的存储库。因为我只拿了初始仓库的一部分;更改了整个文件结构以满足我的设置并开始更改/开发它以供我自己使用我没有分叉它,而是克隆它并将远程更改为我的存储库。
后来我发现自己想将 PR 提交给初始 repo,以帮助原始开发人员处理我改进的部分代码,我认为这些代码足够通用,可以在初始 repo 中使用。为了能够提交 PR,我已经分叉了 repo。
所以现在我的 GitHub 上有 2 个存储库,系统上有 2 个不同的位置 - 1 个是我的存储库,它正在慢慢偏离源代码,另一个是它的直接副本,仅用于为原始项目做出贡献。
我想知道是否有正确的方法来处理这种情况,也许我这边没有 2 个回购?此外,只有我的辅助存储库具有指向原始项目的分叉链接,而我宁愿让我的主要存储库重定向到源。
谢谢,我希望我解释得足够清楚。
解决方案
假设 GitHub 中的原始存储库是orig/repo
,而您的分叉存储库是user/repo
. 让本地系统中的原始克隆由 beA
和 fork 的克隆成为B
。A
让存储在 GitHub 上的副本位于user/A
.
根据您的描述,您一直在处理 中的更改A
,而在B
中包含原始代码user/repo
,此后一直保持不变。您希望只保留一份本地副本,同时可以选择回馈orig/repo
.
这样做的方法是将您的更改推送到 中的一个分支user/repo
,然后打开一个拉取请求到orig/repo
. 因此,您需要为 to 添加一个遥控A
器user/repo
。
这可以使用以下方法完成:
git remote add <remote-name> https://github.com/user/repo
where<remote-name>
是新遥控器的标识符。
随后,要将分支推送(类似于拉取、获取等)分支b
到user/repo
,您可以使用:
git push <remote-name> b
以这种方式,您可以在同一个存储库中为您自己的更改和您希望回馈的更改维护单独的分支。这也使得根据需要合并分支或从一个分支到另一个分支的樱桃选择更改变得更加容易。