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)
- 结帐分支 B:
git 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/
话虽如此,我发现在同一个存储库的分支中有两个不同的应用程序很奇怪 - 但我不知道您的确切设置。
我有 master 分支,我从它创建了两个应用程序,我在应用程序 A 中进行了提交,但意识到这种修改在两个分支中都很常见。 如何在不允许两个项目相等的两个分支中仅输入此更改。
正如您所说,您在应用程序 A 中完成的提交也需要添加到应用程序 B 中,假设更改(提交)与这两个应用程序中可用的公共代码相关。
然后就可以把分支切换到应用B
git checkout branch_name
然后 apply the patch 提交
git apply patch_file
或者您可以再次在应用程序 B 分支中进行更改,而不是应用补丁。
之后提交并推送代码。
您始终可以对任何分支进行更改,因此不会强制要求同一存储库的不同分支必须相等。
您可以 cherry pick 分支之间的提交。
- 在 A 分支中找到提交(例如 A1234B)
- 结帐分支 B:
git 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/
话虽如此,我发现在同一个存储库的分支中有两个不同的应用程序很奇怪 - 但我不知道您的确切设置。