#使用git rebase把 bugFix 分支里的工作直接移到 master 分支上(移动以后会使得两个分支的功能看起来像是按顺序开发,但实际上它们是并行开发#的)。
时间: 2024-11-18 22:18:34 浏览: 15
在Git中,`rebase`命令可以用来将一个分支的内容应用到另一个分支上,这包括对`bugFix`分支所做的所有提交。如果你想将`bugFix`分支的改动合并到`master`分支,并保持`master`分支的提交历史整洁,可以按照以下步骤操作:
1. **切换到目标分支**: 首先,确保你在`master`分支上运行命令。
```bash
git checkout master
```
2. **拉取最新更改**: 确保你的本地`master`是最新的,如果有的话。
```bash
git pull origin master
```
3. **检查out your bugFix分支**: 切换到`bugFix`分支。
```bash
git checkout bugFix
```
4. **执行rebase**: 将`bugFix`分支的提交应用到`master`分支上,同时创建一个新的`master`历史记录链。
```bash
git rebase -i master
```
这将会打开一个文本编辑器,你可以选择哪些提交你想移动到`master`。通常选择`pick`然后替换为`reword`、`move`或`edit`,接着保存并关闭编辑器。对于每个你想移动的commit,输入`move commit-hash^`(`^`表示前一个commit),回车确认。
5. **解决冲突(如果有)**: 如果`rebase`过程中发现冲突,需要手动编辑文件解决冲突,然后添加、提交并继续`rebase`过程。
6. **完成rebase**: 当所有的改动都处理完毕,结束`rebase`并回到`master`分支。
```bash
git rebase --continue
git checkout master
```
7. **推送新变更**: 最后,将`master`分支推送到远程仓库。
```bash
git push origin master
```
现在`master`分支上包含了`bugFix`的所有更新,但提交历史看起来就像是依次进行的。注意,这个过程可能会改变`bugFix`分支的历史,所以如果你还需要保留原始的`bugFix`分支版本,记得在rebase之前做一次`git checkout -b bugFix-old master`,备份旧的分支。
阅读全文