目标:将A工程的master分支推到B工程master分支
我的方法比较野鸡:本地拉A工程的代码和B工程的代码 将A工程的.git文件夹替换为B工程的.git文件夹,重新commit,提交,这种方法并没有保留A工程之前的提交记录。
网上方法:
- git checkout -b master// 切到B工程master分支
git rm -rf . // 删除多余项目目录 并且手动删除 node_modules/dist目录等
git remote add A仓库名 A工程git地址//获得A工程
git add .//commit
git commit -m “新建空白分支”//commit
git pull A仓库名 master --allow-unrelated-histories//下拉A工程master分支 添加允许合并命令 - git clone B工程git地址//首先本地克隆B工程
git remote add A仓库名 A工程git地址//获得A工程
git checkout -b master// 切到B工程master分支
git remote -v//验证一下
git fetch A仓库名 //抓取A工程
git merge A仓库名 /master //合并A工程master分支到本地克隆项目
git push B仓库名 master //将本地克隆项目推动到旧项目 - git clone B工程git地址//首先本地克隆B工程
git remote add A仓库名 A工程git地址//获得A工程
git checkout -b master// 切到B工程master分支
git fetch A仓库名 //抓取A工程
git cherry-pick 5d967e1c --allow-unrelated-histories//将A的某次commitid cherry-pick到B工程master分支
git push//push
三种方法大差不差 都是用git remote add获得A工程 git checkout获得B工程的master分支
区别在拉取A工程master分支
- 1用的是git pull
- 2用的是git fetch git merge
- 3用的是git fetch git cherry-pick
这三种我都没试过,不清楚A工程git提交记录是否保留