git 导出版本之间差异文件

本文介绍了如何通过git命令查看commit id,找出差异文件,并将其打包或直接复制出来。通过`git log`获取commit id,使用`git diff --name-only <commit1> <commit2>`显示差异文件名,利用`git archive`将差异文件打包成update.tar.gz,或者使用`git checkout -p <commit>`直接复制出差异文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看 commit id

首先用 git log 查看版本库日志,找出需要导出的 commit id

$ git log --pretty=oneline
456bcbccd91278f7fdf6bf11bc73c4e3a6193c7f (HEAD -> www.xxx.com) 搜索添加翻页
4416b97c1c67efb83f63bd60af8244105471f3db Merge branch 'master' into www.xxx.com
ffd7d3c29d92dcbb6239401dd997a38d6adf554b (master) 将分页视图发布到项目中,方便自定义分页
68ea66ca296f41e62951ae96aa59fdd7b2848317 给搜索路由加上名称
93593adac0bce680e63d202057c8128ccd9ea82b (origin/www.xxx.com) 调整页脚的网址
f07871038329dccf00a4deb66d7898bd1015c2e1 修正首页轮播图小点的问题
f5ce56385f0cff7817619c7577600ea995f10994 Merge branch 'master' into www.xxx.com
7b7354817681392cf3696629bb9032960216ade9 (origin/master) debug:从栏目复制导航的时候,会报错
690c7826a076b49b401d55534d83263b8b15348a Merge branch 'master' into www.xxx.com
003dc9aa6ed0c4b6009e782e87585bd2eaefddac 文章添加 seo 信息,栏目删除 seo 标题字段
12f2da2c00ececb59eab05ed34c259d6167fd41a 添加文章、栏目 seo 信息
e11b00c72a669f13de51f80ce4c1152500eed250 完成文章详情页面套模板
697013ee07c4904e954e468431d8e54634111a3e 合并主干
c6718cf018b62178711ed482aa7509d16e6c5e21 打开文章、栏目添加点击量
aa300af58a0c929ff6a6ac97a949fea4146cca7c Merge branch 'master' into www.xxx.com

找出差异文件

使用 git diff 命令可以查看提交之间的插件,使用 --name-only 参数只显示文件名

$ git diff 456bcb 93593a --name-only
public/js/index.js
resources/views/index.blade.php
resources/views/public/pagination.blade.php
resources/views/search.blade.php
resources/views/vendor/pagination/bootstrap-4.blade.php
resources/views/vendor/pagination/default.blade.php
resources/views/vendor/pagination/semantic-ui.blade.php
resources/views/vendor/pagination/simple-bootstrap-4.blade.php
resources/views/vendor/pagination/simple-default.blade.php

输出结果就是所有的差异文件,下面再使用 xargs 将文件进行下一步处理

将差异文件打包

$ git diff 456bcb 93593a --name-only | xargs tar -czvf ../update.tar.gz
public/js/index.js
resources/views/index.blade.php
resources/views/public/pagination.blade.php
resources/views/search.blade.php
resources/views/vendor/pagination/bootstrap-4.blade.php
resources/views/vendor/pagination/default.blade.php
resources/views/vendor/pagination/semantic-ui.blade.php
resources/views/vendor/pagination/simple-bootstrap-4.blade.php
resources/views/vendor/pagination/simple-default.blade.php

这样,../update.tar.gz 文件就有所有更新的文件

直接复制出差异文件

$ git diff 456bcb 93593a --name-only | xargs -t -i{} cp --parents {} ../update
cp --parents public/js/index.js ../update
cp --parents resources/views/index.blade.php ../update
cp --parents resources/views/public/pagination.blade.php ../update
cp --parents resources/views/search.blade.php ../update
cp --parents resources/views/vendor/pagination/bootstrap-4.blade.php ../update
cp --parents resources/views/vendor/pagination/default.blade.php ../update
cp --parents resources/views/vendor/pagination/semantic-ui.blade.php ../update
cp --parents resources/views/vendor/pagination/simple-bootstrap-4.blade.php ../update
cp --parents resources/views/vendor/pagination/simple-default.blade.php ../update

xargs -t -i{} cp --parents {} ../update 的参数说明

  • -t:显示执行的命令
  • -i{}:将前面的输入作为一个占位符 {} 在后面使用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值