导出/存档只在Git中更改的文件
题
有没有一种简单的方法来导出/存档仅将更改的文件从一个指定的提交或一系列Git修订的?我似乎无法找到明确的指示,要做到这一点(我是新来的Linux / GIT)。
我使用msysgit,并在大多数情况下我很好与部署整个仓库,但在许多情况下,更有效地在同一时间部署小修正了一些文件。
推/拉/远程服务器上安装Git是不是一个真正的选择,因为我的访问级别项目和客户之间变化。
是否有一个直接的方式(粗略估计):
pipe 'diff --names-only' to 'git-archive'?
解决方案
我不认为有任何需要涉及的git的存档。使用--name-only
,你可以焦油了文件:
tar czf new-files.tar.gz `git diff --name-only [diff options]`
既然你是新来的Linux,这可能需要一些解释:
在命令行中的反引号导致shell第一反引号内执行该命令,则该命令的输出代入tar
的命令行。所以git diff
首先运行,其产生的文件名的列表,每行一个。新行被折叠到空间和文件的整个列表放在tar
命令行上。然后tar
运行创造了定存档。请注意,这会产生相当长的命令行,所以如果你有一个非常大的数字被修改的文件,你可能需要不同的技术。
不隶属于 StackOverflow