与浅层 git 克隆协作

collaboration with shallow git clones

如何创建单个分支的浅克隆,可以将其推送到新的远程并稍后重新集成到原始远程中?

我需要向客户发送代码。该客户想要进行更改,我需要稍后将其集成到我的代码库中。但是,我不能给客户一个完整的克隆。

我可以创建一个完全符合我希望客户拥有的克隆。

git clone --branch customer-release --depth 1 url

我可以删除我的远程,在新分支上进行提交(就像客户所做的那样),再次添加我的远程,然后将客户分支推送到我的远程上进行集成。

但是,我无法将浅层克隆推送到新创建的远程设备上(正如客户希望的那样)。
我尝试了孤儿分支和变基,但最终没有成功。

为了避免任何错误,我会创建一个单独的存储库,只包含您想要的代码。
里面不会有任何历史记录,但这样的回购很容易推动和协作。

一旦您想将来自该单独仓库的新提交重新整合到您自己的原始仓库中,您可以使用 format-patch/apply 到 export/re-import 相关提交。

这似乎比尝试从完整的存储库中分离出一个分支更安全。