我是GIT的新手,学到了很少的教程,我创建了主分支和其他工作分支,我正在处理任务。
我在本地计算机上创建了这个。我的客户没有git或任何东西。所以当我必须更新服务器时。我创建了一个包含所有更新文件的rar文件并上传它们。
我正在处理任务(分支A)并将其上传到服务器。后来客户端让我回滚(这是主分支)。假设更改的文件是新分支中的a,b,c,d(我已经上传)并且master上有A到Z文件。我换回主分公司。现在我需要获得旧的a,b,c,d文件,以便我可以将它们上传到服务器。
我已经安装了Tortoise GIT和GIT GUI。我检查了Tortoise GIT的比较分支选项,它显示了我修改过的文件。当我导出它时它只保存文件名
我的问题是。如何从zip / rar存档中的2个分支中获取不同的文件,保持文件夹结构不变。
答案 0 :(得分:1)
您可以使用git diff --name-only master working_branch
获取已更改的文件的名称,并通过您最喜欢的归档文件进行管道传输。
仍然存在一个问题,您无法轻松地从远程端删除文件。选项--diff-filter
可能对此有所帮助,即git diff --name-only --diff-filter=D master working_branch
会列出在working_branch中删除的文件。
编辑:这取决于您要使用的归档器。以下似乎适用于Cygwin的zip package:
git diff --name-only --diff-filter=AM master working_branch | zip patch.zip -@
补丁将包含添加和修改的文件。
答案 1 :(得分:0)
git archive --format=zip -o diff_archive.zip HEAD `git diff --name-only master..HEAD`