git有没有办法提取出commit修改的文件?

行云流水
  • 79

想提取出一次或几次commoin修改过的文件来作为程序的升级包,这样的话就可以直接发给客户覆盖升级,不知道git是否有这样的命令,或者phpstorm是否有这样的操作,各位是如何导出和管理升级包的?

回复
阅读 7.2k
6 个回答
git diff tag1 tag2 --name-only

你要的是 git patch 么?

git show commitid可以查看某个commit修改了那些文件,git checkout commitid 文件名可以将某个提交id的文件给保存下来,可以试试看

你可以发布某一版本的所有文件:

git archive commit_hash | gzip > package.tar.gz

但是这样并不能用于覆盖升级,因为看不到被删除的信息。

最好从某一版本到另一版本的补丁:

git diff from to | gzip > upgrade.patch.gz

然后用 patch 命令应用补丁:

gzcat upgrade.patch.gz | patch -p1
shurrik
  • 1
新手上路,请多包涵

git diff-tree -r --no-commit-id --name-only 36dae86666aa178b26f15ce2325e199d1498f88b| xargs tar -rf mytarfile.tar

yu_style
  • 2
新手上路,请多包涵

在根目录执行:
git diff-tree -r --no-commit-id --name-only {commitId} | xargs tar -rf mytarfile.tar

你知道吗?

宣传栏