GIT: 如何在两个分支中只插入一个修改,不允许两个项目相等

GIT: How to insert only a modification in two branch not allowing the two projects are equal

我有 master 分支,我从它创建了两个应用程序,我在应用程序 A 中进行了提交,但意识到这种修改在两个分支中都很常见。 如何在不允许两个项目相等的两个分支中仅输入此更改。

正如您所说,您在应用程序 A 中完成的提交也需要添加到应用程序 B 中,假设更改(提交)与这两个应用程序中可用的公共代码相关。

然后就可以把分支切换到应用B

git checkout branch_name

然后 apply the patch 提交

git apply patch_file

或者您可以再次在应用程序 B 分支中进行更改,而不是应用补丁。

之后提交并推送代码。

您始终可以对任何分支进行更改,因此不会强制要求同一存储库的不同分支必须相等。

您可以 cherry pick 分支之间的提交。

  • A 分支中找到提交(例如 A1234B
  • 结帐分支 Bgit checkout B
  • Cherry-pick 提交:git cherry-pick A1234B

这会将 A1234B 上的哈希 A1234B 的提交作为新提交应用于 B 分支 - 它不会合并分支。像 SourceTree 这样的工具将使这个过程变得容易得多,因为您可以从项目历史记录中找到提交,并且可以同时挑选多个提交。

这里有一个更详细的例子:https://ariejan.net/2010/06/10/cherry-picking-specific-commits-from-another-branch/

话虽如此,我发现在同一个存储库的分支中有两个不同的应用程序很奇怪 - 但我不知道您的确切设置。