git - 无分支的分支

git - 无分支的分支

我正在使用 git 来管理对发行版的调整并为每个版本生成 ISO。我目前有 4 个分支(不包括 master)。管理这些分支的最佳方法是什么,因为它们共享文件,我想轻松地在分支之间来回移动更改。我正在使用 cherry pick 将更改拉到每个分支。但是,我必须对我想要的每次提交都这样做,并查看每个分支的日志。

我还有什么其他选择,关于如何最好地组织这些分支还有其他想法吗?

答案1

每个发行版分支最初都应该从分支中分支出来master,然后直接向发行版分支添加提交,以使其独一无二。为了使它们保持最新状态,偶尔将更改合并master到发行版分支中。

例如,如果您的分发分支是onetwo,则下面的提交图显示针对主分支进行的提交,然后更改合并到每个分支中。

从主分支合并变更的分发分支

# Create distribution branch and make it unique
git checkout -b one master
work... work...
git commit

# Make some changes on master
git checkout master
work... work...
git commit

# Merge the changes into the distribution branch
git checkout one
git merge master

当主分支包含通用应用程序设置,但我希望将生产环境设置也保留在源中时,我使用了此策略。每个生产环境都已提交特定设置,当我想要更新生产环境时,我会先将主分支合并到生产分支中。

答案2

我使用的策略取决于各个分支之间的差异,以及需要在所有分支中传播的更改类型。

如果差异相对恒定且在代码库中不经常更改的部分中产生(例如在 Makefile 中将变量设置为不同的值,而大多数开发都在源代码文件中进行),我会设置分支,在中进行开发,master然后git rebase master在需要更新它们时使用这些分支。

然而,如果分支之间的差异本身就不固定,我会merge根据需要进行挑选。

相关内容