Git实验分支或单独的实验库?

我正在开发一个Android应用程序,并且在整个开发周期中一直使用Git。 我现在已经到了想要构建和发布实验性功能的地步,供人们试用和安装,同时仍然在设备上安装了原始的稳定应用程序。

现在,这意味着我需要使用不同的软件包名称,这会改变开发项目中的一些基本文件。 我还想有一个单独的图标来清楚区分应用程序。

我不习惯Git足以知道该采取何种方式:我是否应该创建一个实验分支,当我想做一些实验工作或者将这个实验工作作为单独的git-repo进行分支时,我将分支出来?

我遇到了一些问题,无论哪种方式的实际流程。

  • 如果我做了一个实验分支,我不想(错误地)将分组名称的变化和明确分离的实验细节与主分支合并; 我只想合并代码的工作部分,而无需额外添加修改。
  • 如果我制作单独的回购协议,我如何将实验回购和主回购协议的变更合并,考虑同样的愿望,即不会取代。 包名称和图标?

  • 这正是分支机构的目标。 一个限制是git真的看到提交,而不是文件。 所以你通常会使用cherry-pick命令将不同分支中的一个或几个提交合并到master中。

    git branch branchx
    git checkout branchx
    ... do work, commit (into branchx), repeat...
    git checkout master   # return to master
    git log branchx  # to find out the ID of the commit to merge back
    git cherry-pick <commit ID from branchx>
    

    这是首选的方法。 这意味着你在实验分支工作时应该记住这一点。 您的提交应该足够小,只包含修复/功能中涉及的文件。

    另外,你可以选择一些文件来合并使用

    # from branch master do
    git checkout branchx file1 file2 file3
    

    看到这个相关的答案你如何合并选择性文件与Git合并?


    我肯定会去分支。 你必须在承诺中练习一些规则,使它们足够小,以便只挑选需要的部分并留下其他部分。 但我不认为这是一个问题,当然不是合并两个独立存储库之间的更改。

    链接地址: http://www.djcxy.com/p/27119.html

    上一篇: Git experimental branch or separate experimental repository?

    下一篇: Find out which remote branch a local branch is tracking