Git的另类合并(禁用Fast forward)及强制删除

我们前面章节就已经讲过"分支合并"了,但是这个另类合并又是什么梗?做事情前先了解背景......

在Git世界里有个叫Fast forward的国度,每次我们在Git世界"合并分支"时,不经意间总是要经过Fast forward国,这个国家的制度有点奇怪:我们在合并分支后,删除分支时,会丢掉分支的信息。如果我们不经过Fast forward国,那么Git就会在合并(merge)时生成一个新的commit,而且还能看到我们的旅行历史的记录(分支历史的分支信息)。

默认的情况我们会经过Fast forward国,但我们不想从它那里经过时怎么办?我们使用 --no-ff的git merge方式。

我们先创建一个新的分支,叫weird1,并且创建weird.txt:


然后在master分支上,用--no-ff模式合并:


然后我们用

git log --graph --pretty=oneline --abbrev-commit

看看:


第一个就是 --no-ff合并(不经过Fast forward)时,自动创建的commitID,而后面跟着的就是"分支信息";

左边的几条线是"时间线",现在,它长成了你喜欢的模样?


当我们的leader需要我们开发出一个全新的功能时,我们创建了新的分支进行开发,但是突然leader说这个功能不需要了,也就是说明需要把这个分支彻底删掉。

但是由于我们尚未合并,所以删除的时候是会出错的,我们在weird1分支上测试:

新建文档hello.c


然后切换至master分支,不合并,且删除:


我们发现出错了,但它提示了个信息。我们试一试这个命令:

git branch -D weird1

然后,它就这样被消灭了.......

如果误删了怎么办?别忘了,我们的git有后悔药吃,我们直接那串commitID,即可恢复。


我们恢复了文件,却未恢复其分支。这一点值得注意了。。。

所以请勿随便使用-D。。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值