【问题标题】:Merging a branch into an intermediate commit in GIT将分支合并到 GIT 中的中间提交
【发布时间】:2013-12-06 18:15:49
【问题描述】:

假设您有一个单独的分支,它不断获取新的提交以跟踪数据库转储,并且它是 master 的第一次提交的分支。

我知道我可以合并到master的HEAD中,通常的程序。

相反,我想将分支历史合并到一个中间提交中,以将 gitk 中的并行分支行保持在最低限度。

所以我尝试:

git checkout -b temp_master_branch [Intermediate master commit SHA1]
git merge db_dump_branch
git checkout master

尽管如此,当我在 gitk 中可视化时,现在有 3 行长的行,一个用于 master,另一个用于转储分支,最后另一个用于这个新的 temp_branch。

我该怎么做?我希望它有一些意义。

谢谢。

【问题讨论】:

  • 您希望获得多少个分支?
  • 您的意思是要将 db_dump_branch 合并到一个旧的提交中(master 分支提示的父提交)?
  • @raina77ow 我想合并到 master(即单个当前活动分支)。

标签: git git-branch git-merge gitk


【解决方案1】:

合并总是会创建新的提交(除了在快进的情况下),因此如果不创建新分支或重写现有分支,就无法合并到旧提交中。如果你想在你的 master 分支中转储数据库,你需要合并到 master 分支的尖端并处理 gitk 的外观。

攻击长寿命并行分支的其他选项:

  • 让数据库转储程序直接提交给 master。
  • 除非更新非常频繁,否则让转储程序为每个转储创建一个短暂的新分支。

【讨论】:

  • 真正的区别是什么,我不是合并到 HEAD 吗?当 HEAD 位于顶部时,我不明白这是如何可行的,而当我将 HEAD 移动到上一个提交时,这是不可行的。
  • 嗯,根据定义,你总是合并到 HEAD。但是除非 HEAD 碰巧 是 master 分支的尖端,否则您实际上不会合并到 master 中,您将合并到一个分支中(反过来,可以合并到 master 分支)。
猜你喜欢
  • 1970-01-01
  • 2014-07-17
  • 2013-07-25
  • 2021-11-03
  • 2018-05-10
  • 1970-01-01
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多