关于 Git rebase 简谈

本文探讨了在Git中使用rebase进行分支管理的优势,建议在本地分支与远程分支交互时使用rebase以保持分支历史清晰。强调只对未推送的本地修改执行rebase,并解释了为何不应对已推送的提交进行变基操作。同时提到了压缩本地commit的特性,虽然不常用但也是Git的一个功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于 rebase 、最常用的可能是使用 idea pull 代码的时候勾选的选项吧

微信公众号:CoderLi

对于本地分支 pull 对应远程分支实际上是建议使用 rebase 的、因为这些变更只在本地、并不会产生任何坏的影响。

这样子对于分支来说、会相对比较好看、并且对于公共开发、使用的是同一个分支、这样子就不会产生额外的分叉、当然要整个团队成员都是 rebase 、当 pull 远程分支到本地的时候。至于远程分支之间的合并、那就是另说了。

https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA

总的原则是,只对尚未推送或分享给别人的本地修改执行变基操作清理历史, 从不对已推送至别处的提交执行变基操作,这样,你才能享受到两种方式带来的便利。

至于压缩本地 commit 这个功能相对来说还是用得比较少。

`git rebase -s` 和 `git rebase -i` 都是 `git rebase` 命令的不同选项,用于管理和编辑提交历史。 1. **`git rebase -s`(或 `--strategy-squash`)**: 主要用于 squash(压缩)一系列相邻的提交。当你想要将几个连续的提交合并为一个,并附带一个新的提交消息时,可以使用 `-s squash`。这会创建一个新的提交,其内容是所有被合并的提交,而之前的提交会被删除。命令行看起来像这样: ``` git rebase -s squash feature_branch ``` 然后在交互模式下,选择你要保留哪些提交,并给新提交一个描述。 2. **`git rebase -i`(或 `--interactive`)**: 更强大的选项,允许用户直接编辑已有的 `pick`(默认行为)、`reword`(编辑提交消息)、`edit`(编辑提交内容)、`squash`(合并提交)、`fixup`(同 `squash` 一样合并,但提交消息不保存)或 `drop`(丢弃提交)。这个模式打开一个文本文件,列出要被重新组织的提交,并允许你在每一行对应的操作之间进行切换。例如: ``` git rebase -i HEAD~n # n 是要操作的提交数 ``` 这样就可以对提交进行细粒度的管理,如移动提交位置、合并等。 使用这两个选项时,都需要谨慎操作,因为它们会直接影响你的提交历史。特别是当你的提交已经被推送到远程仓库时,修改历史可能会导致其他用户的分支变得无效,因此通常在本地开发环境中使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值