Git避免;“合并分支主控”;

Git避免;“合并分支主控”;,git,git-merge,Git,Git Merge,我和一位同事正在将git与一个远程源存储库一起使用。 我们都提交本地文件,然后推送到源文件。在我们工作的过程中,自然会出现一些分歧 一旦它的时间推到原点,我会怀疑我们可以合并本地,然后推到原点。 我希望在没有描述合并的情况下得到一个相当直接的版本历史记录 从相当复杂的地铁地图版本和不断重复出现的合并分支“主”消息来看,我想我们做得不太对 “将分支合并到主分支”消息的原因是什么 如何简化此版本历史记录 我觉得这个问题以前已经得到了回答,但我无法完全理解我收集的信息 我想您正在寻找git-reb

我和一位同事正在将git与一个远程源存储库一起使用。 我们都提交本地文件,然后推送到源文件。在我们工作的过程中,自然会出现一些分歧

一旦它的时间推到原点,我会怀疑我们可以合并本地,然后推到原点。 我希望在没有描述合并的情况下得到一个相当直接的版本历史记录

从相当复杂的地铁地图版本和不断重复出现的合并分支“主”消息来看,我想我们做得不太对

  • “将分支合并到主分支”消息的原因是什么
  • 如何简化此版本历史记录
我觉得这个问题以前已经得到了回答,但我无法完全理解我收集的信息


我想您正在寻找
git-rebase

从“保存真实历史”的角度来看,历史记录中记录的每个合并都是必需的。您的分支在这一点上出现分歧,随后被合并(请注意,这两个分支的提交对它们来说是唯一的,因此不可能实现快速转发)


如果重新设置基址,当前提示(包括同事的更改)将成为新的分支点,除非它们在两者之间插入,否则您的更改可以通过快进应用,给人一种线性发展的印象(但具有非单调的时间戳)您不时地整合您同行的变化,
git
忠实地记录了这段历史

而你可以“避免”合并通过重定基址进行提交,通常最好坚持mergy历史记录:每当你重定提交基址时,你实际上是在创建一个新的提交,一个关于它是如何发生的谎言。而且,尽管这些谎言通常是善意的,但它们可能会在以后造成麻烦。如果你跳过在ea上重新运行测试套装,这一点尤其正确ch和每个重定基的提交

我认为,“创建线性历史”的整个想法有点误导性。你并不真的想要一个线性历史。你想要一个真实的历史,一个每个提交都经过实际测试的历史。因为这允许你以后运行
git bisect
,并获得有意义的结果


TL;DR:不要改变你的习惯。它们本来就很好。将来你可能会感谢它们。

do
git config--global pull.rebase true
在执行
git pull时将其设为默认值