结论: 使用git format-patch+git am即可实现
使用场景:
例如仓库A这里有5个提交记录,commitid1, commitid2, commitid3, commitid4,commitid5
仓库B想用仓库A中提交的代码,手动改比较慢,当改动较多的时候容易漏掉某个文件,那就可以用format-patch+am
参考网站:
git format-patch
git am
如何用:
- 找到你想迁移的代码commitid
 比如:
 情景1,我想要迁移commitid2以后的所有提交,那么需要用commid2
 情景2,我想要迁移commitid2-commitid4的提交,那么需要记住commitid2和commitid4
- 在仓库a中,运行 情景1 git format-patch commitid2 --output-directory filename 情景2 git format-patch commitid2..commitid4 --output-directory filename(output-directory 表示将补丁文件放在指定目录而不是当前文件夹中) 
 ( filename是放在仓库A外面的某个空文件夹的url , 比如D盘的test文件夹,那就是D:/test)
 结果:
 在对应文件夹下生成多个补丁文件
-  然后仓库B中执行 
 git am -3 filename/xxx.patch(逐条执行,这样如果有冲突方便解决) 
-  遇到冲突会显示patch failed  
 执行如下命令可以将冲突文件显示出来git apply --reject filename/XXX.patch比如一共改了四个文件a.jsx, b.jsx, c.json, d.js, 
 其中a, c文件有冲突, 那么当你执行apply命令以后,
 b.jsx和d.js最新改动会加入到git中,紧挨着a.jsx和c.json文件生成xxx.rej文件
 打开xxx.rej文件,可以看到冲突的地方
 这个时候就需要你手动去a,c文件中修改冲突
 修改完
 删掉xxx.rej文件
 然后执行git am --resolvedgit push
如果遇到下面这种问题

可以执行
git am --skip然后重新  git am xxx 命令
  
当你结束git am 别忘了退出git am状态
git am --abort


















