git把一个工程的某一个tag对应的源代码转移到另外一个工程

假定远端有一个工程:http://github.com/zhtqs/test1.git有一个tag名为v20180308,任务是转移此tag的源代码到:ssh://[email protected]:29418/test1.git,转移操作命令行如下:

mkdir test1 & cd test1
git init
git remote add origin http://github.com/zhtqs/test1.git
git fetch origin v20180308
git tag v20180308 FETCH_HEAD
git checkout -b v20180308 v20180308
git remote set-url origin ssh://test@192.168.4.3:29418/test1.git
git push --set-upstream origin v20180308

下面要做的是把分支v20180308与master合并了。建议使用GUI工具合并,因为GUI解决合并冲突在操作上的便利性好于命令行工具。如果用户目的是完整的使用本次转移得到的全部代码,那么可运行命令行合并:

git checkout -b master
git branch --set-upstream-to=origin/master master
git pull -f --allow-unrelated-histories
git add -A
git commit -m "merged"
git push

如果转移目标的git工程在服务端是一个空的工程,那么转移工作可以一步到位,命令行如下:

mkdir test1 & cd test1
git init
git remote add origin http://github.com/zhtqs/test1.git
git fetch origin v20180308
git tag v20180308 FETCH_HEAD
git checkout -b master v20180308
git remote set-url --push origin ssh://test@192.168.4.3:29418/test1.git
git push -u origin master

限定历史记录数量的方法是在git fetch 命令行加入参数:–depth=1

猜你喜欢

转载自blog.csdn.net/caoshiying/article/details/79483838
今日推荐