2016-09-21 170 views
0

我在名为blaBla的分支上工作。 master从其他人处获得大量提交。为了保持与主人更新blaBla我做频繁的git拉大师并合并到blaBla。但是这使得我的分支混乱不堪。我想合并所有新的已发生的提交到一个,然后合并到我的分支。所以当我做git log时,我只看到属于该分支的提交以及那些单独的合并提交。没有别的Git在合并之前合并提交

回答

1

我想合并所有在主发生的新提交到一个,然后合并到我的分支。

你真的不想这样做。为使从master变成一个特性分支的唯一合理的选择是:

  1. 做一个正常git merge master没有挤压其提交,这样的Git可以告诉它提交您的特性分支有共同之处master(否则你可能遭受无数合并冲突)。否则,压缩的合并提交中的所有新变化看起来像是它们的新功能的一部分 - 并不好。

  2. 做一个git rebase master重播您的分支的最新变化master。这是我首选的工作流程,因为它将您的更改构建为“自从master以来的更改”,无论您开始使用哪个master,但它带有重写历史记录的所有常见风险(例如,如果要将git push --force更改为其他人依赖的分支)。


更新,以反映接受的答案:或者改变你如何可视化的提交。 git log --first-parent将隐藏合并到当前分支的提交。虽然通常用于可视化master(哪些功能分支已合并),但它也可以排除已合并到功能分支中的master提交。

+0

所以在这两个我塞满我的本地分行与数千人发生在主犯下的历史被改写。如何跟踪我的分支更改,然后触摸master中的小目录?如果你在每次提交几次后频繁合并滚动你的commtis似乎是一个不可能的任务,除非通过成千上万的主提交滚动来查找你的分支的东西 –

+0

我所关心的只是看到我的提交,单一合并提交和没有其他的相关修复冲突。我怎么做? –

+1

一种选择是使用'git log --first-parent'来查看你的分支 - 你会看到“合并分支'master'到blaBlah'(及其冲突解决方案),但不是合并的提交。” 我不明白“混乱我的本地分支”关于“rebase”的评论 - 如果您认为分支是“从master分支后发生的变化(即'git log master..'),post-'rebase '你会继续看到同一系列的提交。 – dahlbyk

0

似乎有一些方法可以做到这一点,但如果您只是在本地进行此操作,它可能会使您的更改变得更难掌握。 Git的真不喜欢在所有

Here is a good answer on using git reset --soft

+0

正如你所说修改历史是一个很大的禁忌。我不想修改主人。只要将它的提交合并到我的分支,不要碰其他任何东西。也许这更像是一个git log可视化的东西,而不是实际的组合提交。所以,当你做'git log'时,你所看到的只是我的提交,单合并事件以及合并冲突的相关修复。没有其他数千个提交看到 –