- Published on
使用 git rebase 创建新分支并继承部分提交 | git cherry-pick
- Authors
- Name
- Shelton Ma
1. 使用 git rebase
1. 让 develop 继承 master,并丢弃部分提交
创建新分支
# 基于master创建新分支 git checkout -b develop master
执行交互式 rebase
git rebase -i master
在交互界面删除不需要的提交, 之后产生新的分支
2. git rebase 使用说明
# 交互式 Rebase 最近3个提交
git rebase -i HEAD~3
# 显示为
pick 9a1c2f3 feat: 添加登录接口
pick 2b4d5e6 fix: 修复 token 错误
pick 7e8f9g0 chore: 修改注释
# pick 保留此提交
# reword 保留commit但需要修改message
# edit 保留提交, 进入edit模式
# squash 将提交合并到上一个
# fixup 类似squash, 但不保留message
# drop 删除提交
2. 使用 git cherry-pick
作用是从其他分支中“挑出一个或多个提交”,应用到你当前所在的分支上,
cherry-pick
的行为特点:
- 会把你指定的提交内容复制一份放到当前分支,并生成新的
commit hash
- 不会保留原来的分支结构或提交序列
- 如果发生冲突,需要你手动解决并
git cherry-pick --continue
创建新分支
git checkout master git checkout -b develop git cherry-pick a1b2c3 d4e5f6 g7h8i9 git push origin develop
3. git rebase VS git revert VS git cherry-pick
git rebase -i
(推荐,用于修改历史), 适用于想彻底删除某些提交,并保持提交记录干净。git revert
(适用于已推送的提交,避免破坏历史, )git cherry-pick
(用于创建新分支, 包含新的commit hash
)