gpt4 book ai didi

同一项目的 Git 私有(private)和公共(public) repo

转载 作者:IT王子 更新时间:2023-10-29 00:37:47 25 4
gpt4 key购买 nike

来自 Git 新手的问题:我在 Git 存储库中有一个项目,我想将其中的一部分作为 OSS 提供。出于实际原因,项目的私有(private)和公共(public)部分的存储库必须不同,而所有开发都将在私有(private)存储库中进行。在某些时间点,我想用私有(private)版本中选定的提交来更新 OSS 版本。

现在,我在公共(public)仓库的本地镜像中有一个私有(private)仓库设置的远程分支,我正在使用 git cherry-pick 从远程分支复制有趣的提交私有(private) repo 到公共(public) repo 的主分支,然后我推送。然而,由于私有(private)开发速度非常快,因此 cherry-pick 可能非常耗时。

对于如何改进工作流程,有什么建议吗?

顺便说一句,我确实阅读了 SO 问题 #999064#1807036

最佳答案

一个可能的选择是使用 git rebase -i 为您提供一个文本文件,其中包含您私有(private)目录中特定范围内的所有提交。假设您是 privatepublic 负责人,并且在 private 分支中有 10 个新提交:

git checkout private
git pull
git checkout -b work
git rebase -i --onto public private^10
# an editor pops up listing the commits. Just delete the private ones.
git checkout public
git merge work
git branch -d work
git push

如果除了上述之外还维护这样的 lastsync 分支,则可以用 lastsync 替换 private^10 而不必跟踪 rev 计数:

git checkout lastsync
git merge private

关于同一项目的 Git 私有(private)和公共(public) repo ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4896095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com