We use 发展大师。我们合并stable要掌握的主题分支。对于我们的客户,我们来自 master 的分支。我们需要让一些外部协作者(通常是前端开发人员)在客户的分支上进行协作。但他们不得有任何访问权限(读或写) 到其他分支或master(理想情况下,甚至不涉及客户分支分歧之前的项目历史)。
我的想法是,我们可以创建一个新的存储库,其中“修订版 0”将是客户端分支分歧的存储库,并使用拉取请求来拉取对规范存储库的更改。有什么办法可以做到这一点吗?我的意思是从其他存储库的一些具体修订开始创建空存储库。
我认为这应该是可能的 - 因为内容将是相同的 - 哈希值也会相同。但是,简单地复制和粘贴修订版是行不通的,或者容易出错,因为新创建的请求需要与规范存储库中的请求完全相同才能具有相同的哈希值。
请注意我们使用 Github 作为我们的 git 托管我们无意创建自己的 git 托管。
如果您想对彼此和您的主服务器隐藏客户端,则每个客户端都需要一个私有存储库。您将拥有一个包含您自己的开发的内部存储库,以及每个客户的孤立分支。当你想创建一个新的客户端分支时,你会这样做
git checkout --orphan client_xx
git commit
然后,您将拥有一个孤立分支,其中包含当时主分支的确切内容。要创建客户端存储库,您需要使用临时分支做一些小技巧
mkdir -p /path/to/client_xx
cd /path/to/client_xx
git init
git fetch /path/to/internal client_xx:tmp
git checkout tmp
git branch master
git checkout master
git branch -d tmp
现在,客户端存储库的 master 分支将包含与内部存储库的客户端分支完全相同的 sha1。您可以让客户端分叉客户端存储库并向您发出拉取请求。您可以通过拉取客户端分支将客户端存储库集成到内部存储库中。由于客户端分支是孤立的,因此您无法正确地将客户端分支合并到主分支(反之亦然),但您可以使用cherry-pick 进行集成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)