我在一家名为blaBla的分公司工作。 master
获得了其他人的大量提交。为了与主人保持更新blaBla,我经常使用git pull master并将其合并到blaBla中。但是这让我的分支混乱了大量的提交。我想将master中发生的所有 new 提交合并为一个,然后将其合并到我的分支中。所以当我git log
时,我只看到属于该分支的提交和那些单一的merge-commit。没有别的
答案 0 :(得分:1)
我想将master中发生的所有新提交合并为一个,然后将其合并到我的分支中。
你真的不想这样做。将master
更改引入功能分支的唯一合理选项是:
在不压缩其提交的情况下执行正常git merge master
,以便Git可以告诉您的功能分支与master
具有哪些共同提交(否则您可能会遇到大量的合并冲突)。否则,您压缩的合并提交中的所有新更改似乎都是您新功能的一部分 - 不是很好。
执行git rebase master
重播您master
的最新更改分支机构的更改。这是我首选的工作流程,因为它会将您的更改构建为自master
"以后的更改。无论你从哪个master
开始,但它都带有重写历史的所有常见风险(例如,如果你要git push --force
转到其他人所依赖的分支,请非常认真地沟通)
更新以反映已接受的答案:或者,更改您对提交进行可视化的方式。 git log --first-parent
将隐藏合并到当前分支的提交。虽然通常用于可视化master
(已合并的功能分支),但它也可以排除已合并到功能分支中的master
提交。
答案 1 :(得分:0)
似乎有几种方法可以做到这一点,但如果您只是在本地执行此操作,它可能会使您的更改更难掌握。 Git真的不喜欢历史重写吗