git导出不同版本的差异代码

本文介绍了如何利用git导出不同版本之间的代码差异,并提供了在不同git仓库间持续同步代码的方案。通过执行特定命令,可以便捷地获取版本间的修改,避免手动操作的繁琐。此外,还阐述了一种确保代码同步且能独立开发的流程。

场景:

有时候会遇到不同git仓库但要相互同步代码,而我们只需要导出修改后的代码,我们不可能一个个文件的拷贝出来吧,而且文件夹的目录结构手动处理不管是容错、还是工作量都是不小的开支。因此我们利用git archive指令来导出有差异的代码

两个已提交版本的代码差异导出

  1. 列出两个版本commit(可以使用git log、也可以使用IDEA的VersionControl右键Copy Reversion Number)
  2. 执行命令(win版)
git archive --format=zip HEAD $(git diff --name-only b083cb774d2a19d58ff043bbdea904316e9c84c5 6cc9baeb488f3d6e1f254ef092703351057f3250) > diff.zip
  1. 执行命令(linux版)
git archive --format=zip HEAD `git diff --name-only b083cb774d2a19d58ff043bbdea904316e9c84c5 6cc9baeb488f3d6e1f254ef092703351057f3250` > diff.zip

b083cb774d2a19d58ff043bbdea904316e9c84c5 表示老版commit
6cc9baeb488f3d6e1f254ef092703351057f3250 表示新版commit

  1. 注意点:
  • 存在文件删除的,无法同步(未验证)
  • 必须在git仓库的根目录执行
  • 打包后的zip解压,直接粘贴到老版commit的基准代码就能实现代码合并了。

不同git仓库的代码持续同步方案

假设现在的场景,gitA仓库的代码,被发送给了B,并建立了新的仓库gitB。B要在此基础开发。同时又需要接受gitA仓库代码的bug修复。

  1. gitA与gitB确认代码基线
  2. gitB仓库建立专属gitA的分支
  3. gitB仓库建立B分支在此基础做开发任务
  4. 当gitA发布代码补丁,通过上述导出命令,生成zip后将代码同步到gitB仓库的gitA分支,最后合并gitA分支到B分支。
  5. 以上流程便实现既能开发又能维护补丁。当然fork也有这个功能,但这种情况考虑的是两个git仓库是私仓或不愿透露仓库信息的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值