最近遇到个问题:一个比较老的项目出现bug,需要更新。客户要求只能增量更新,所以打包的时候不可能一个一个文件找出来打包,这样效率太低,经过查找资料,git下找到一种办法如下:

背景:代码库用的是gitlab

工具:git for windows(一个工具)

      sourcetree (git可视化管理工具)


首先 一:

      sourcetree 找到提交变更的id校验码 “f506693”(直接在gitlab后台也可以看到) 如图所示:

wKiom1f_QZOiPhjTAACIidSK7xA181.jpg-wh_50


然后在另外一个提交处也获取这个“校验码”622b6a6。


  最后在仓库根目录下右击打开git bash here(windows下安装了git for windows才有),linux下直接执行即可,命令:

git diff f506693 622b6a6 --name-only | xargs tar -czvf update.tar.gz

大概的意思就是 git 对比两个提交之间的差异,输出文件名通过管道提交给tar打包。