Git与克隆

Git与克隆,git,Git,我已经为一个名为“a”的客户端开发了一个应用程序(其实不是) 我发现它很酷,我也想把它卖给其他客户。目录“A”是Git存储库。我想我克隆它有问题。据我所知,我需要复制目录'a',并称之为'Generic_a'。然后删除dir'A'并执行“git clone Generic_A A”,然后我可以开始更改'Generic_A'-repo,并删除所有客户端引用。但事实并非如此。我应该开始做一般设计,然后克隆repo以更改为特定于客户的设计 我可以: 开设一个新分支 执行所有更改以使设计通用 创建反映两

我已经为一个名为“a”的客户端开发了一个应用程序(其实不是)

我发现它很酷,我也想把它卖给其他客户。目录“A”是Git存储库。我想我克隆它有问题。据我所知,我需要复制目录'a',并称之为'Generic_a'。然后删除dir'A'并执行“git clone Generic_A A”,然后我可以开始更改'Generic_A'-repo,并删除所有客户端引用。但事实并非如此。我应该开始做一般设计,然后克隆repo以更改为特定于客户的设计

我可以:

  • 开设一个新分支
  • 执行所有更改以使设计通用
  • 创建反映两者之间更改的修补程序
  • 删除特定于客户端的分支
  • 将目录重命名为“Generic_A”
  • 将回购克隆到新目录“a”
  • 应用补丁以恢复特定于客户端的内容
  • 如果是,我如何制作补丁并应用它

    问候,


    雅各布

    这可能行得通,尽管他在6岁到6岁之间。和7。在应用您的补丁之前,我会创建一个“client\u a”分支。
    缺点是您将丢失对客户端A的提交历史细节,因为您在一次大型提交中应用了该修补程序

    在您的情况下,可以使用制作补丁,请参见

    然后应用修补程序:

    这将忽略默认的a/b/源前缀


    以下是可能的工作流程:

    • 在目录上:
      • 从分支“client-a”创建新的分支“generic”
      • 在“Generic”分支上使用“git rebase-i”删除所有客户端A内容
      • 使用“git-rebase-client-A generic”在generic-A上重新设置客户机-A分支的基础
    • 将A目录重命名为generic目录
    • 将您的通用目录克隆到新的客户机a目录
    • 从generic dir中删除client-A分支

    这样,您将保留客户端A分支的历史记录

    非常感谢您的回复。你为什么要设立“客户”分支机构?为什么不在主分支上应用补丁呢?它毕竟是通用分支的克隆。顺便说一句-我知道会失去历史记录,但在这种情况下我可以接受。@jrif:a``client\u a`branch允许您离开主分支,当您进行下一次
    git pull
    git diff --no-prefix > patchfile
    
    patch -p0 < patchfile
    
    patch -p1 < patchfile