GIT 下载 pull 请求文件已更改

标签 git git-pull git-diff git-fetch

我试图在 GIT 的 PULL REQUEST 中下载更改的文件以用于部署目的。

你能帮我找出最好的方法吗。

目前,develop 是我的默认分支。

git clone https://mygitreposerver.net/EWE/mygitrepo.git

cd mygitrepo

git fetch origin pull/$n/head:pull_$n

git diff --name-only develop pull_$n

mkdir ../mygitrepo-modified

cp --parents $(git diff --name-only develop pull_$n) ../mygitrepo-modified

将 $n 替换为 PR#。

这将给我所有更改文件的名称。

我怀疑这是一种有效的方法,并且相信应该有一些简单的方法可以只从 GIT PR 中获取更改的文件。

你能帮忙吗!

最佳答案

您可以使用 git archive导出文件。除此之外,您还可以过滤并仅导出更改的文件。您应该得到一个包含所有更改文件的 zip 文件。

在你的情况下:

git archive -o update.zip pull_$n $(git diff --name-only develop pull_$n)

您还可以通过管道传输到 tar:

git diff --name-only develop pull_$n | xargs tar -czf ../update.tar.gz

但如您所见,这两种解决方案与您已经在做的非常相似。

关于GIT 下载 pull 请求文件已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52598824/

相关文章:

git - 如何在 Yocto 配方中指定 git 分支

git - 如何配置 git 在一个 'remote' 中从 http pull 并通过 ssh 推送?

git - 如何找出 git 中所有已更改文件的列表以获取完整的 jenkins 构建而不是特定提交?

git - 当 git checkout 相同的文件时,docker 添加缓存

linux - Jenkins 无法运行 Maven

git - 无法在 Cygwin : error while loading shared libraries 上执行 git push/pull

git - 仅在 Git 扩展上手动 merge

Git - 区分范围但忽略 merge

git - 列出我已推送到远程 Git 存储库的所有文件

vim - 如何使用 vim-fugitive 查看任何提交的 git diff?