git把一个工程的某一个tag对应的源代码转移到另外一个工程
Posted 岬淢箫声
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git把一个工程的某一个tag对应的源代码转移到另外一个工程相关的知识,希望对你有一定的参考价值。
假定远端有一个工程:http://github.com/zhtqs/test1.git有一个tag名为v20180308
,任务是转移此tag的源代码到:ssh://test@192.168.4.3: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
以上是关于git把一个工程的某一个tag对应的源代码转移到另外一个工程的主要内容,如果未能解决你的问题,请参考以下文章