如何在 git 中同时使用同一应用程序的多个版本?
How to work with more than one version of the same application at the same time in git?
我有一个应用程序要供很多客户使用,目前我们有两个版本,一个是核心版本,另一个将供我的一个客户使用。现在我们有两个分支(master,client_1),它们很相似,但又不同。
我的问题是,如果我只是为了 client_1 更正某些内容,这很容易,我只需要在该分支中提交即可。但是如果我对两者都进行了更正,我现在不知道如何 "merge" 它,因为如果我合并我的 git 会尝试合并所有内容,而不仅仅是我的更正。
现在,假设我的应用程序扩展到 15 个客户端,每个客户端都有一些不同的小变化,但它是不同的。我该如何控制这类问题?
我想你要找的是"cherry-pick"。这个小改动,你在主分支上提交...然后在客户端分支上,你挑选修订版。
如果可以安排特定于客户端的 "cosmetics" 更改应该在特定于客户端的分支上进行,或者在从客户端分支分支出来的修复分支上进行。
理念是这些更改永远不会合并回主分支。
在完美的世界中,主分支上的所有更改都应该安全地合并到所有客户端产品分支,但您可能需要在接受它们之前进行额外的测试阶段。
如果更改并签入到主要或特定其他客户端所需的客户端分支,那么 cherry-pick
就是这种方式。
如果在 main 上发现不需要的客户端编辑,那么您可以回滚 main,或者应用另一个更改来撤销它。然后根据需要将其挑选到应有的位置。
Git cherry -v 将显示哪些更改可以在分支之间复制,而 git cherry-pick 将让您 select 一个特定的更改集,或者一些相关的更改要单独合并。
请注意,您的默认常规流程不应涉及 cherry-picks,因为更改的两个实例将具有不同的哈希值。
我有一个应用程序要供很多客户使用,目前我们有两个版本,一个是核心版本,另一个将供我的一个客户使用。现在我们有两个分支(master,client_1),它们很相似,但又不同。
我的问题是,如果我只是为了 client_1 更正某些内容,这很容易,我只需要在该分支中提交即可。但是如果我对两者都进行了更正,我现在不知道如何 "merge" 它,因为如果我合并我的 git 会尝试合并所有内容,而不仅仅是我的更正。
现在,假设我的应用程序扩展到 15 个客户端,每个客户端都有一些不同的小变化,但它是不同的。我该如何控制这类问题?
我想你要找的是"cherry-pick"。这个小改动,你在主分支上提交...然后在客户端分支上,你挑选修订版。
如果可以安排特定于客户端的 "cosmetics" 更改应该在特定于客户端的分支上进行,或者在从客户端分支分支出来的修复分支上进行。
理念是这些更改永远不会合并回主分支。
在完美的世界中,主分支上的所有更改都应该安全地合并到所有客户端产品分支,但您可能需要在接受它们之前进行额外的测试阶段。
如果更改并签入到主要或特定其他客户端所需的客户端分支,那么 cherry-pick
就是这种方式。
如果在 main 上发现不需要的客户端编辑,那么您可以回滚 main,或者应用另一个更改来撤销它。然后根据需要将其挑选到应有的位置。
Git cherry -v 将显示哪些更改可以在分支之间复制,而 git cherry-pick 将让您 select 一个特定的更改集,或者一些相关的更改要单独合并。
请注意,您的默认常规流程不应涉及 cherry-picks,因为更改的两个实例将具有不同的哈希值。