Git 合并分支提交记录

概述

正常开发流程中,是自己拉一个分支下来开发,后面各种修修补补,等最后测试通过后,再放到主分支上,这样能保证主分支的干净和清晰。

假设这里开发分支为 dev, 主分支是 master。且开发分支因为各种关系,放在另外一个仓库上。需要全部移到新分支上。

步骤

首先,将两个仓库先 clone 下来

1
2
git clone [拥有代码的开发分支仓库地址] old
git clone [拥有主分支仓库地址] new

后面 [拥有代码的开发分支仓库地址] 称为 [旧仓]; [拥有主分支仓库地址] 称为 [新仓]。

然后进入旧仓库,将记录提交到新仓库的开发分支上

1
2
3
4
5
6
7
cd old
# 切换到开发分支,如果是在 master 上开发则下一步
git checkout -b [开发分支] origin/[旧仓远端开发分支]
# 增加远端地址
git remote add newRes [新仓]
# 推送到 [新仓] 上
git push newRes [开发分支]:[新仓远端开发分支]

此时可以在 [新仓] 的 [新仓远端开发分支] 看到旧仓中的开发提交记录以及代码。

进入新仓库,将开发分支合并到主分支上

1
2
3
4
5
6
7
cd ../new/
git pull
git checkout master
## 如果要将开发分支的提交记录也带入到主分支,去掉 --squash 和 `git commit` 步骤即可
git merge origi/[远端开发分支] --squash --allow-unrelated-histories
git commit -m ''
git push origin master