哪一个应该用来隐藏微提交? 是git merge –squash和git merge –no-ff –no-commit的唯一区别git merge –no-ff –no-commit否认其他父母?
成功的Git分支模型build议在合并分支时使用–no-ff : –no-ff标志会导致合并始终创build一个新的提交对象,即使合并可以用快进执行。 这样可以避免丢失有关function分支历史存在的信息,并将所有提交的function组合在一起。 […] 是的,它会创build更多(空)的提交对象,但增加的成本要大得多。 不幸的是,我还没有find一种方法来使git合并的默认行为,但它确实应该是。 了解Git工作stream ,但是,build议不要使用–no-ff : 所以你添加一个新的规则:“当你在你的特性分支中合并时,使用–-no-ff强制一个新的提交。”这样就完成了工作,然后继续。 […] –no-ff ,折断和blame是所有使用螺丝刀作为锤子的症状。 […] 这两种方法对于不同的情况似乎都是合理的,但是什么被认为是“好的做法? 你什么时候用–no-ff ,什么时候不用,为什么?
来自mercurial,我使用分支来组织function。 当然,我也希望在我的历史中看到这个工作stream程。 我使用git开始了我的新项目,并完成了我的第一个function。 合并function时,我意识到git使用快进,也就是说,如果可能的话,它直接将我的更改应用到主分支,忘记了我的分支。 所以想想未来:我是唯一一个在这个项目上工作的人。 如果我使用git的默认方法(快速合并),我的历史将导致一个巨大的主分支。 没有人知道我为每个function使用了一个单独的分支,因为最后我只有那个巨大的主分支。 这不看起来不专业? 通过这个推理,我不想快速合并,也不知道为什么它是默认的。 这有什么好处呢?