Git 仅获取分支差异中的文件
我在Bitbucket有一个帐户 我创建了一个分支,只想下载该分支中的文件 如果我转到Bitbucket并单击分支,然后单击Diff。。。我可以看到一长串我编辑过的文件,但不能直接下载它们 如果我先下载然后再下载分支,它显然会给我整个项目(不仅仅是分支中修改的文件) 有什么想法吗 我希望能够做到这一点的原因 因为我发现如果我使用git并拥有这些分支。。。这些文件要么在我的本地计算机上,要么在Bitbucket中 当我对分支版本感到满意时,我需要将新文件更改上传到我们的服务器 如果只有这些文件就好了,因为这样我就可以简单地把它们放到filezilla中,然后上传到我们的服务器上 其他注释 我现在在我的开发分支上,在一个项目的一个存储库下,我可以将该分支中的每个文件上传到我的服务器上。但是因为上传到服务器的速度太慢(20分钟),所以最好只上传受影响的文件。。。加快速度 相关问题:Git 仅获取分支差异中的文件,git,bitbucket,git-diff,Git,Bitbucket,Git Diff,我在Bitbucket有一个帐户 我创建了一个分支,只想下载该分支中的文件 如果我转到Bitbucket并单击分支,然后单击Diff。。。我可以看到一长串我编辑过的文件,但不能直接下载它们 如果我先下载然后再下载分支,它显然会给我整个项目(不仅仅是分支中修改的文件) 有什么想法吗 我希望能够做到这一点的原因 因为我发现如果我使用git并拥有这些分支。。。这些文件要么在我的本地计算机上,要么在Bitbucket中 当我对分支版本感到满意时,我需要将新文件更改上传到我们的服务器 如果只有这些文件就好
要导出所需文件,您需要当前分支的第一个提交id,然后可以使用diff tree列出受影响的文件,然后使用tar命令导出它们:
git diff-tree -r --no-commit-id --name-only --diff-filter=ACM
"firstCommitOfTheBranch"..HEAD | xargs tar -rf exportedFiles.tar
该选项允许您选择要列出的文件类型(在本例中为[A]dded、[C]opied和[M]odified),因此,如果要确保所有修改都包含在tar文件中,则需要检查是否没有删除或重命名的文件:
git diff-tree -r --no-commit-id --name-only --diff-filter=DR
"firstCommitOfTheBranch"..HEAD
如果前面的命令返回一些文件名,则需要在服务器中手动重命名或删除它们