有没有一种简单的方法来导出/存档仅将更改的文件从一个指定的提交或一系列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运行创造了定存档。请注意,这会产生相当长的命令行,所以如果你有一个非常大的数字被修改的文件,你可能需要不同的技术。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top