0

我是 GIT 新手,学习了一些教程,并且我创建了 master 分支和另一个我正在处理任务的工作分支。

我在本地机器上创建了这个。我的客户没有 git 或任何东西。所以当我必须更新服务器时。我确实创建了一个包含所有更新文件的 rar 文件并上传它们。

我正在处理一项任务(分支 A)并将其上传到服务器。后来客户要求我回滚(这是主分支)。假设更改的文件是新分支中的 a、b、c、d(我已上传),并且 master 上有 A 到 Z 文件。我切换回主分支。现在我需要获取旧的 a、b、c、d 文件,以便将它们上传到服务器。

我已经安装了 Tortoise GIT 和 GIT GUI。我检查了 Tortoise GIT 的比较分支选项,它向我显示了被修改的文件。当我导出它时,它只保存文件名

我的问题是。如何在 zip/rar 存档中从 2 个分支获取不同的文件,以保持文件夹结构完整。

4

2 回答 2

2

您可以使用git diff --name-only master working_branch来获取已更改文件的名称,并通过您最喜欢的存档器进行管道传输。

一个问题仍然存在,您无法轻松地从远程端删除文件。该选项--diff-filter可能对此有所帮助,即git diff --name-only --diff-filter=D master working_branch列出已在 working_branch 中删除的文件。

编辑:这取决于您要使用的存档器。以下似乎适用于 Cygwin 的zip 包

git diff --name-only --diff-filter=AM master working_branch | zip patch.zip -@

该补丁将包含添加和修改的文件。

于 2013-06-04T10:56:27.633 回答
0
git archive --format=zip -o diff_archive.zip HEAD `git diff --name-only master..HEAD`
于 2014-11-12T01:44:38.107 回答