【发布时间】:2014-07-26 00:09:22
【问题描述】:
我想开源一堆我们的私有代码,同时仍然允许我们私下工作,与公共社区共享子集,并将社区更改合并回我们的私有存储库。我相信 GitHub 可以做到这一切,但我很难让它在实践中发挥作用。你能帮我弄清楚如何完成这项工作吗?
我相当精通 git/GitHub 的基本流程,但我对这个练习的深度不够。我已经看到了一个很好的概述here,但它留下了很多细节作为“读者练习”——我无法弄清楚。具体来说,这是我到目前为止所做的测试(非常详细,供其他人将来参考):
在
Expensify/dbarrett_PrivateTest中创建了一个新的私有仓库,只包含一个README.md文件(无法链接到它,因为它是私有的)在本地克隆它:
git clone git@github.com:Expensify/dbarrett_PrivateTest.git创建了一个新的公共仓库:https://github.com/Expensify/dbarrett_PublicTest
在本地创建了私有仓库的“裸克隆”:
git clone --bare git@github.com:Expensify/dbarrett_PrivateTest.git已将其推送到公共仓库:
cd dbarrett_PrivateTest.git git push --mirror git@github.com:Expensify/dbarrett_PublicTest.git拉下我的公共回购(现在很高兴地填充了私人提交):
git clone git@github.com:Expensify/dbarrett_PublicTest.git在公共 repo 中编辑
README.md并推送公共提交:vim README.md git commit -a git push origin master很高兴我成功地将公开提交推送到公共存储库,就像我希望未来的开源贡献者一样。
-
在我的私有仓库中重放 (7) 中的相同步骤,并成功将私有提交推送到我的私有仓库(并确认它没有出现在公共仓库中)。
不过,我已经做到了。这是我接下来想做的,但不知道怎么做:
将公共提交拉到我的私人仓库中,模拟我如何将公共贡献合并到我的私人代码库中。
将私有提交推送到公共存储库,模拟我将如何将自己的更改贡献回社区。p>
我看到过一些比我知道如何处理(远程、获取等)更高级的 git 概念的讨论,所以我有点不知所措,无法弄清楚下一步。你能提出任何建议吗?谢谢!
【问题讨论】:
标签: git github open-source