Tom*_*far 3 git github repository
我们使用master进行开发。我们将稳定的主题分支合并到 master 中。对于我们的客户,我们从 master 分支。我们需要让一些外部协作者(通常是前端开发人员)在客户的分支上进行协作。但他们不能对其他分支或主分支有任何访问权限(读或写) (理想情况下甚至不能访问客户端分支分歧之前的项目历史记录)。
我的想法是,我们可以创建一个新的存储库,其中“修订版 0”将是客户端分支分歧的存储库,并使用拉取请求来拉取对规范存储库的更改。有什么办法可以做到这一点吗?我的意思是从其他存储库的一些具体修订开始创建空存储库。
我认为这应该是可能的 - 因为内容将是相同的 - 哈希值也会相同。但是,简单地复制和粘贴修订版是行不通的,或者容易出错,因为新创建的请求需要与规范存储库中的请求完全相同才能具有相同的哈希值。
请注意,我们使用 Github 作为我们的 git 托管,并且我们无意创建我们自己的 git 托管。
如果您想对彼此和您的主服务器隐藏客户端,则每个客户端都需要一个私有存储库。您将拥有一个包含您自己的开发的内部存储库,以及每个客户的孤立分支。当你想创建一个新的客户端分支时,你会这样做
git checkout --orphan client_xx
git commit
Run Code Online (Sandbox Code Playgroud)
然后,您将拥有一个孤立分支,其中包含当时主分支的确切内容。要创建客户端存储库,您需要使用临时分支做一些小技巧
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
Run Code Online (Sandbox Code Playgroud)
现在,客户端存储库的 master 分支将包含与内部存储库的客户端分支完全相同的 sha1。您可以让客户端分叉客户端存储库并向您发出拉取请求。您可以通过拉取客户端分支将客户端存储库集成到内部存储库中。由于客户端分支是孤立的,因此您无法正确地将客户端分支合并到主分支(反之亦然),但您可以使用cherry-pick 进行集成。
| 归档时间: |
|
| 查看次数: |
3289 次 |
| 最近记录: |