点击上方“IT平头哥联盟”,选择“置顶或者星标”
现在 dev 分支上的修改已全部合并到主分支 master 上。那 no-fast-forward 又是什么呢?
合并后,在当前主分支 master 上包含 dev 分支上的所有修改。
你的关注意义重大!
前言@zhangbao,有三年前端开发经验,目前在上海工作。当前着重于对前端基础技术的学习,活跃于掘金(@zhangbao90s)。平时会经常翻看和翻译国外的一些技术文章,希望跟大家一起进步。正文从这开始~~本文会介绍一些常用 Git 指令的图解说明。包括:
- git merge
- git rebase
- git reset
- git revert
- git cherry-pick
- git fetch
- git pull
- git reflog
合并(git merge)
当项目中包含多条功能分支时,有时就需要使用 git merge 命令,指定将某个分支的提交合并到当前分支。Git 中有两个合并策略:fast-forward 和 no-fast-forward。fast-forward(--ff)
如果当前分支在合并分支前,没有做过额外提交。那么合并分支的过程不会产生的新的提交记录,而是直接将分支上的提交添加进来,这称为 fast-forward 合并。![ba0bd0de07c54d286f78f1616a2262a4.gif](https://img-blog.csdnimg.cn/img_convert/ba0bd0de07c54d286f78f1616a2262a4.gif)
no-fast-forward(--no-ff)
上面的场景很少遇到,基本是:在当前分支分离出子分支后,做了一些修改;而分离出的子分支也做了修改。这个时候再使用 git merge,就会触发 no-fast-forward 策略了。在 no-fast-forward 策略下,Git 会在当前分支(active branch)额外创建一个新的 合并提交(merging commit)。这条提交记录既指向当前分支,又指向合并分支。![8a434549aff860b25fd60542c4aaf1fb.gif](https://img-blog.csdnimg.cn/img_convert/8a434549aff860b25fd60542c4aaf1fb.gif)