有没有一种简单的方法来从给定的提交或一系列提交中导出/归档仅更改的文件,使用git?我似乎找不到清晰的指示来做到这一点(而且我对Linux / Git还很陌生)。
我正在使用msysgit,大部分时间我都可以使用整个存储库进行部署,但在许多情况下,逐个部署少量修复文件效率更高。
在远程服务器上推送/拉取/安装git并不是一个真正的选择,因为我的访问级别因项目和客户而异。
是否有一种简单明了的方法(初步猜测):
我正在使用msysgit,大部分时间我都可以使用整个存储库进行部署,但在许多情况下,逐个部署少量修复文件效率更高。
在远程服务器上推送/拉取/安装git并不是一个真正的选择,因为我的访问级别因项目和客户而异。
是否有一种简单明了的方法(初步猜测):
pipe 'diff --names-only' to 'git-archive'?
git diff --name-only [diff options] | xargs tar -czf files.tar.gz
- jasonxargs
会导致不同的问题,因为xargs
会多次运行tar
。这将导致tar
创建一个新的.tar文件并覆盖先前的文件,因此只包含最后一批文件。 - Greg Hewgilltar
的参数从-cvf
改为-rvf
即可轻松解决此问题。 - jasongit diff --diff-filter=AM […]
,这样只有新增或修改的文件会在 git-diff 输出中列出。无需额外解析。 - Jari Keinänen