我仍然不清楚:
我想从opensource项目中获取代码并做出贡献。但是我也希望进行私人更改,可以使用公开有用的代码部分,并在本地存储库中进行私密更改。
我想,方式将是:
然后可以从我的分支“海关”中删除原始代码的某些部分,巫婆将不会再次从“项目”自动同步,但我仍然可以为原始项目做贡献?我怎么能这样做?
答案 0 :(得分:1)
您可以执行以下操作:
master
。master
分支以及两个已修改的分支。我建议不要连接到这个分支,而是每次修改其他分支时重新创建它。这将保证此分支(和您的本地构建)将始终包含明确定义的状态。我通常使用以下命令序列来实现此目的:git checkout local git reset --hard master git merge my-public1 my-public2 my-private1 my-private2
答案 1 :(得分:0)
如果该开源项目在GitHub上,则需要fork it(在服务器端克隆),然后在本地克隆它(forks work also on BitBucket,对于Mercurial或Git)。
从那里,您可以将您想要的任何分支推送到您的远程(分叉)仓库 但是您的pull requests只会涉及您想要回馈原始回购的分支。
如果您希望“自定义”提交保持完全私有,请将您的fork(在GitHub或BitBucket上)作为私人回购。
注意:private repos are actually free on BitBucket! (和not free on GitHub)。
其他解决方案并不实用,因为他们认为您可以直接推送到开源项目(即成为该项目的贡献者)。情况并非总是如此,因此在提出拉取请求之前,必须首先进行分叉(并制作您自己的远程仓库,您可以根据需要进行贡献)。
答案 2 :(得分:0)
这是它的工作原理。
1)下载存储库。 2)创建分支做修改。 3)与开源项目维护者共享您的分支。 (根据代码库主位置有不同的方法)
如果他们喜欢您的更改,他们会将您的分支与主人合并,否则他们会拒绝他们。
如果他们拒绝他们,他们通常会告诉你原因。根据这个原因,您可以进行进一步的更改,将其分配到新项目,或放弃更改。如果开发的原因是参与开源项目,那么你永远不应该合并为master,除非维护者也要求你。
然而,您应该学习如何重新分支一个分支,以便与主人保持联系。