Git合并没有快进标志-错误的做法?

Git合并没有快进标志-错误的做法?,git,git-merge,Git,Git Merge,我有一个关于在Git中可以与merge命令一起使用的标志的问题。显然,如果使用--no ff with merge(无快进标志),它将在合并点创建一个新的提交对象,即使合并可以通过快进执行 git merge --no-ff afeature 我还没有找到任何关于这面旗帜的信息,似乎没有人在任何地方讨论它。创建这样的提交对象(从而避免丢失有关该特性历史存在的信息)是一种不好的做法吗?或者它过时了,被什么东西取代了 谢谢不,这不是一个坏习惯。这是你的选择。强制创建合并提交非常有用的一种情况是在代

我有一个关于在Git中可以与merge命令一起使用的标志的问题。显然,如果使用--no ff with merge(无快进标志),它将在合并点创建一个新的提交对象,即使合并可以通过快进执行

git merge --no-ff afeature

我还没有找到任何关于这面旗帜的信息,似乎没有人在任何地方讨论它。创建这样的提交对象(从而避免丢失有关该特性历史存在的信息)是一种不好的做法吗?或者它过时了,被什么东西取代了


谢谢

不,这不是一个坏习惯。这是你的选择。强制创建合并提交非常有用的一种情况是在代码审查中。如果开发人员总是推动功能分支进行审查,并且审查人员在接受该功能时执行合并,那么合并提交将包含有关谁进行了审查的所有信息以及其他有用的注释。这就是用于github/gitlab的请求式工作流的工作方式。当项目负责人接受拉请求时,始终会创建合并提交,即使它能够进行快进合并。

我听过这两种观点,出于可读性的考虑,我通常倾向于使用它们。在另一边

较新的Git会在发出请求时自动合并非快进。“从而避免丢失信息”——无论是否创建了合并提交,原始提交都会成为当前分支历史记录的一部分。信息“丢失”的唯一情况是通过快进合并:不会记录合并提交时间的详细信息。