为什么';t git rebase导致线性项目历史

为什么';t git rebase导致线性项目历史,git,Git,我的步骤如下: A.git签出-b功能-A 编辑一些文件 C.git提交 D.git推送原点功能-a E.在gitlab上创建合并请求 F.被我的队友接受,合并到开发部门 G.git重新基准来源/开发 我的期望是,提交历史现在是线性的,但事实并非如此。原因是什么?基本上,git将在DAG(有向无环图)中记录您的提交历史记录,但您可以使用git log——第一个父级检索线性项目历史记录。如果您的pull请求已合并到开发分支中,则存在合并提交。因此,发展分支的历史不是线性的。(因为您的功能分支从开发

我的步骤如下:

A.
git签出-b功能-A

编辑一些文件

C.
git提交

D.
git推送原点功能-a

E.在gitlab上创建合并请求

F.被我的队友接受,合并到开发部门

G.
git重新基准来源/开发


我的期望是,提交历史现在是线性的,但事实并非如此。原因是什么?

基本上,git将在DAG(有向无环图)中记录您的提交历史记录,但您可以使用
git log——第一个父级
检索线性项目历史记录。

如果您的pull请求已合并到开发分支中,则存在合并提交。因此,发展分支的历史不是线性的。(因为您的功能分支从开发分支的某个地方开始,并再次合并到中)


要获得线性历史,您的队友必须在功能分支上重新设置开发分支的基础

您在提交之前是否使用了
git add
,因为我使用了
git add
调用上一个命令时您在哪个分支?你能再具体一点“乱七八糟”吗?我当地的开发部门,“乱七八糟”的意思是我希望它是线性的,但它不是线性的,我应该在推之前做
git-rebase-origin/develope
@Gernote如果拉请求已合并到开发分支中,则存在合并提交。因此,发展分支的历史不是线性的。(因为您的功能分支从开发分支的某个地方开始,并再次合并到中)。要获得线性历史,您的队友必须在功能分支上重新设置开发分支的基础。这是否回答了您的问题@phieo?一般来说,如果您与其他人一起工作并使用功能分支(正确的gitflow工作流),您不会想要简单的线性历史(我个人坚持——合并时不使用ff),因为您希望将功能分支视为历史中的分支。所以你希望你的历史尽可能的线性化,但仅此而已。