Git创建完整的文件补丁下载/分发?

iar*_*arp 9 git

无论是我疯了还是没有人喜欢/喜欢这个功能,但很久以前我曾经使用过sourceforge系统的subversion.我有能力为提交的提交创建完整的文件补丁.

无论如何我无法弄清楚在git中创建这些,我想要的只是从XX提交更改的文件,只有完整的文件,以便我可以将它们交给某人/只将这些文件上传到某个位置.

因为它目前正在重新上载整个项目,因为我什么都没有告诉我改变了什么.由于我们也在共享的Web主机上,因此无需升级到更昂贵的软件包就无法在服务器上获取git.

我试过了

git archive --output=/home/username/temp.zip <commit id>
Run Code Online (Sandbox Code Playgroud)

把所有东西都放进了一个拉链很好,但就是这样,它放了一切.还尝试了格式补丁的变体,但似乎没有用.

Mar*_*air 15

在我的另一个答案中,我似乎误解了你想要的东西. git archive可以列出要包含在存档中的路径列表,这样您就可以:

git archive -o /tmp/foo.zip HEAD $(git diff --name-only oldcommit HEAD)
Run Code Online (Sandbox Code Playgroud)

但是,如果您的文件名包含令人惊讶的字符,那么它会更安全:

git diff -z --name-only oldcommit HEAD | xargs -0 git archive HEAD -o /tmp/blah.zip --
Run Code Online (Sandbox Code Playgroud)