git merge 的三种常用模式简介

 目录

fast-forward

--squash

--no-ff

结论


fast-forward

Git 合并两个分支时,如果顺着feature分支走下去可以到达main分支的话(main分支在feature分支开发期间没有新的提交),那么 Git 在合并两者时,只会简单地把指针右移,叫做“快进”(fast-forward)。

一旦删除分支或者分支指针往前走,很难体现该处提交是合并自某个分支的。

--squash

把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用–squash进行合并。

此时代码文件内容已经同合并后一样,但不移动HEAD,不提交。需要进行一次额外的commit来“总结”一下,然后完成最终的合并。这样就简化掉了中间开发过程中的很多杂乱的commit 信息。

--no-ff

关闭fast-forward模式,在提交的时候,会创建一个merge的commit信息,然后和master分支合并。

一般只要不是两个分支同时编辑了同一个文件的相同部分,就不会有冲突。所以这是能自动merge的模式,也是比较常用的模式。

结论

一般而言,我们在开发中都保存好每次commit信息,无论是主分支,功能分支,特性分支。
所以最常用的情况是携带--no-ff参数进行merge

如果提交的commit信息太多,希望简化commit信息,比如开发周期很紧没有详细记录commit信息,则使用--squashmerge时做一次总的commit信息汇总。

参考:git merge 三种常用模式 (devler.cn)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: Git Reset有三种模式,分别是soft、mixed和hard。\[2\]这三种模式的具体使用方法如下: 1. soft模式:使用`git reset --soft`命令可以将HEAD指针指向上一次的commit,同时保留之前的修改内容在暂存区中。这样可以撤销上一次的commit,但是保留修改内容以便重新提交。 2. mixed模式(默认模式):使用`git reset --mixed`命令可以将HEAD指针指向上一次的commit,并且将之前的修改内容放回工作目录中。这样可以撤销上一次的commit,并且取消之前的修改内容。 3. hard模式:使用`git reset --hard`命令可以将HEAD指针指向上一次的commit,并且将之前的修改内容完全删除。这样可以彻底撤销上一次的commit,并且丢弃之前的修改内容。请注意,使用hard模式会永久删除修改内容,请谨慎使用。 所以,git reset命令可以根据不同的模式来回退到之前的某个版本或撤销之前的commit。 #### 引用[.reference_title] - *1* [Git Reset 三种模式](https://blog.csdn.net/QGhurt/article/details/122651361)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Git之Reset的三种模式](https://blog.csdn.net/weixin_42028608/article/details/118595288)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值