网站seo优化外包顾问,微网站建设企划书,小米网站制作,泗洪网页定制结论#xff1a; 使用git format-patchgit am即可实现
使用场景#xff1a;
例如仓库A这里有5个提交记录#xff0c;commitid1, commitid2, commitid3, commitid4#xff0c;commitid5
仓库B想用仓库A中提交的代码#xff0c;手动改比较慢#xff0c;当改动较多的时候…结论 使用git format-patchgit am即可实现
使用场景
例如仓库A这里有5个提交记录commitid1, commitid2, commitid3, commitid4commitid5
仓库B想用仓库A中提交的代码手动改比较慢当改动较多的时候容易漏掉某个文件那就可以用format-patcham
参考网站
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文件可以看到冲突的地方 这个时候就需要你手动去ac文件中修改冲突 修改完 删掉xxx.rej文件 然后执行 git am --resolved git push
如果遇到下面这种问题 可以执行
git am --skip
然后重新 git am xxx 命令
当你结束git am 别忘了退出git am状态
git am --abort