我的步骤如下:为什么不git的变基导致线性项目历史
A. git checkout -b feature-a
B.编辑一些文件
C. git commit
D. git push origin feature-a
E.在gitlab上创建合并请求
F.Accept通过我的队友,合并到开发分支
G. git rebase origin/develop
我的预期是,该提交历史现在是线性的,但事实并非如此。是什么原因?
我的步骤如下:为什么不git的变基导致线性项目历史
A. git checkout -b feature-a
B.编辑一些文件
C. git commit
D. git push origin feature-a
E.在gitlab上创建合并请求
F.Accept通过我的队友,合并到开发分支
G. git rebase origin/develop
我的预期是,该提交历史现在是线性的,但事实并非如此。是什么原因?
基本上,git会在DAG(有向无环图)中记录您的提交历史记录,但您可以使用git log --first-parent
来检索线性项目历史记录。
如果您的pull请求已合并到开发分支中,则会发生合并提交。所以开发分支的历史不是线性的。 (因为你的特性分支从你的开发分支开始并且再次被合并)。
要获得线性历史记录,您的队友必须重新绑定功能分支上的开发分支。
作为一个方面说明,一般来说,如果你与其他人一起工作,并使用功能分支(适当的gitflow工作流程),你不会想要一个简单的线性历史记录(我个人在合并时坚持使用--no-ff),因为您希望将功能分支看作历史记录中的分支。所以你会希望你的历史尽可能的线性,但不能超过那个。 – slebetman
你提交之前是否使用'git add'? –
mrid
couse我用'git add' –
phieo
哪个分支在你调用最后一个命令的时候?你能指定一个“一团糟”吗? – Gernot