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

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

阅读 13.5k
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
新手上路,请多包涵

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

新手上路,请多包涵

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进