我有一个私人的git仓库。我将它设置为原点,添加了一个github存储库的遥控器,从github中拉出,并推送到我的原点。
这样,我就可以在主项目中进行不需要的更改,并在我的其他开发机器之间共享它们。
当我想要与主github项目共享更改时,这是否意味着我必须有3个遥控器?
1-我的私有git存储库
2-原始github存储库
3-原始github存储库,派生到我的github帐户
(也就是说,假设我没有对原始github存储库的直接写访问权限。)
或者,我能以某种方式摆脱上面的#3吗?我可以直接向原始github存储库发送拉取请求,还是必须在那里托管一个?我是否可以通过某种方式将访问github服务器的权限授予我的私有git服务器,并以这种方式发送拉取请求?
我想不出git钩子是怎么工作的。如果我去掉了上面的3号仓库,我就不能让我的私有git仓库有一个钩子自动发送到原始的github仓库,因为那会发送我想要的私有更改……除非有某种方法可以选择性地调用钩子。
发布于 2015-05-11 15:16:18
答案取决于你对“私有”的定义。如果你说的“私有”是指“只有你可以访问”,那么#3是必要的,它是你可以写和上游可以读的唯一地方。
如果你说的“私有”,你的意思是“我是唯一的用户,但它对上游是只读的”,那么你可以将你的代码推到那里,并请求拉动上游开发人员。但是,您将无法使用GitHub的拉-请求机制(实际上,Git是去中心化的,但GitHub是一个相当集中的解决方案)。您只需发送一封电子邮件给他们,请求拉取(可能使用git request-pull
)。
您可以将#3设置为私有存储库的自动镜像。只需在您的私有服务器上配置一个post-receive钩子,每当在您想要镜像的分支上收到推送时,它就会推送到GitHub。或者只是设置一个运行类似git push private && git push github
的别名。
https://stackoverflow.com/questions/30159584
复制相似问题