我有一个在git环境中托管的项目,我必须基于它生成一个白标项目。我对微软的TFVC(团队基础版本控制)更有经验,我很容易知道如何使用它,但我不确定如何继续使用git。
在TFVC中,我会从主项目中创建一个分支“A”,删除任何客户特定内容并完成,我有一个通用版本。之后,我将删除父母,从'A'创建一个新的分支'B',然后执行从主项目到'B'的基础合并,所以现在我有我需要的层次结构,新创建的分支包含所有客户具体的变化。当新客户到货时,我会从通用的'A'创建一个分支'C'并应用所需的任何新更改。
如果一个新功能是通用的并且对所有客户都足够有用,它将在'A'中开发,然后将合并到'B','C'等。这是所有客户的最佳方案在我看来,将允许使用单个存储库来询问不同的功能并打开和关闭它们,这比维护源自常见代码的不同代码示例要糟糕得多。相同的功能在不同的客户端也可能有不同的行为,我不希望应用程序必须在运行时检查它。
根据场景解释,我如何使用Git做到这一点?另外,它可以使用forx而不是使用git的分支来完成吗?
答案 0 :(得分:0)
据我了解,您通常应该做同样的事情,可能会有很小的变化。
从主项目创建一个分支'A',删除任何客户特定内容并完成,我有一个通用版本。
你在git中做同样的事情
之后我将删除父母,从'A'创建一个新的分支'B'然后执行从主项目到'B'的baseles合并,所以现在我有我需要的层次结构和新创建的分支包含所有客户特定的变更
相反,您可以启动分支B
并恢复(作为git revert
)您为分支A
所做的所有更改,以删除客户特定的信息,从而返回到与您相同的项目最初,但没有任何手动冲突解决方案。这是理想的结果吗?
当新客户到货时,我会从通用的'A'创建一个分支'C'并应用所需的任何新更改
在git中相同
如果新功能对于所有客户端都是通用且有用的,那么它将在'A'中开发,然后将合并到'B','C'等
在git中相同