git - 维护不包含与特定更改相关的提交的分支

标签 git git-branch

我正在使用 Git 开发一个项目,现在我想将开发分成两个独立的分支。拆分涉及影响代码库的一个孤立部分的简单变更(带有大写字母 C,因此我可以稍后再引用)——在一个分支中,我希望变更存在;另一方面,我没有。更改封装在一次提交中。

master 分支是我进行所有编码的地方(除非出现特定主题)是我想要包含变更的分支。我想创建一个单独的分支,original(或任何你想调用它的名称),它不包含更改。

master,带有更改的分支,将仍然是主要的首选分支:这是我将继续编码的分支,也是我将实际运行其代码的分支。我想保留 original 以防万一我需要一个没有上述更改的代码版本。

这就是问题所在:我希望能够将 master 中的工作“merge ”到 original 中,但是,很明显,只有不提交的提交'关注变化。

  • 如果我做一个简单的 git merge masteroriginal 将快进到 master,引入我不想要的更改,对吧?
  • 我不想在 original 上开发并 merge 到 master,因为 original 是特例,而不是 master
  • 我不想从 master 那里挑选,因为那会弄乱我的开发历史。
  • 我可以从引入 master 中的变更的提交创建一个新分支 develop。我可以在此分支上进行非更改相关的提交,并轻松地将它们 merge 到 masteroriginal 中。但是,如果我在 master 上做了一些与 Change 相关的提交并想将它们 merge 到 develop 中,那么我将再次无法安全地 merge develop 变成 original,对吧?

我想知道您对如何最好地进行的意见。

编辑:我是唯一一个从事这个项目的人,所以不要排除一个解决方案,因为它可能会在协作环境中扰乱其他程序员。我只是在寻找一个易于使用的解决方案,它可以生成一个干净直观的历史记录,以捕捉这些不同的发展历史的真实面目.如果不存在这样的解决方案,我将接受能够完成工作的答案之一。

最佳答案

如何从 master 分支到原始分支,然后 git revert 包含您不想在原始分支中维护的更改的提交。我想 git merge 会继续工作。只是几个偶数提交的总和将为空。

关于git - 维护不包含与特定更改相关的提交的分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14777045/

相关文章:

GIT - 如何 merge 分支?

git - 使用git rebase后删除的文件,如何恢复?

git - 如何修复 Git 中丢失的 blob?

git - Visual Studio 2013 git 客户端 - 强制推送

git - 在没有交互式 rebase 的情况下提交改写?

Git 删除新的未跟踪文件

git - 如何防止跟踪的配置文件被 git 中的 merge 更改?

Git 分支不返回任何结果

git - git 子模块的权威配置路径是什么

git 检查工作副本存储库是否存在并验证它