迁移git项目到另一个仓库(保留所有分支、标签、历史记录)¶
假设你有一个来自A仓库的git项目,怎么把它推送到B仓库,且不丢失分支、标签、日志?
准备工作¶
- clone老项目并cd到它的根目录。
- 创建新的空项目,并拷贝新项目的git地址。后面的例子里用的地址是“git@new-repo:jack/new-proj.git”。注意,新项目new-proj是一个空项目。
在本地检出所有分支¶
通过下面的脚本,可以快速检出所有分支:
for remote in `git branch -r | grep -v master `; do git checkout --track $remote ; done
如果你只想迁移一部分分支,就不要执行上面的脚本,而是手工检出你想迁移的那些分支,比如:
# 检出想要迁移的分支,删除不想迁移的分支
git checkout dev
git checkout test
git branch -D tmp
迁移分支、标签、历史记录¶
# 将本地旧项目的远程地址改为新项目地址
git remote set-url origin "git@new-repo:jack/new-proj.git"
# 推送本地所有分支到新仓库(包括历史记录)
git push --all
# 推送标签
git push --tags
本文为kyleblog.cn原创,转载请注明出处:https://www.kyleblog.cn/posts/git_migrate
发布日期:2022-09-10 联系作者