关于 GIT 生成更新包的问题

2015-01-16 15:22:28 +08:00
 leafx

今天在分支中使用

git archive -o update.zip NEW_COMMIT_ID_HERE $(git diff --name-only OLD_COMMIT_ID_HERE NEW_COMMIT_ID_HERE)

提取更新包,发现会出现问题,是GIT机制问题还是我的系统问题呢,那位大神了解或者大家有更好的打更新包的方法,求分享

5212 次点击
所在节点    git
18 条回复
zealic
2015-01-16 16:45:12 +08:00
你总得说是什么问题...
zts1993
2015-01-16 16:51:11 +08:00
这命令看上去不错
Delbert
2015-01-16 16:54:16 +08:00
git tag 之后 git push --tags不就可以生成release包了?
v7
2015-01-16 17:17:27 +08:00
git diff --name-only
得到的文件列表包括修改的文件和删除的文件
如果diff里有删除的文件 会出问题吧?
leafx
2015-01-16 17:54:28 +08:00
@v7 是的 一般这个包是提供给客户的 一般删除的文件不会影响到客户正式站点的访问 重要的特殊提醒下就是了

兄台有更好的解决方案么
leafx
2015-01-16 18:00:33 +08:00
@zealic 提示:

fatal: Could not switch to '/345/': No such file or directory

首先,我发现 我的两个commit 没有打错且2个commit 之间有改动

另外一提,在 master 分支就不会出现这个问题,或者说,在 我当前 dev 分支和主分支分离前是的可以导出的
leafx
2015-01-16 18:01:13 +08:00
@zealic 提示:

fatal: Could not switch to '/345/': No such file or directory

首先,我发誓 我的两个commit 没有打错且2个commit 之间有改动

另外一提,在 master 分支就不会出现这个问题,或者说,在 我当前 dev 分支和主分支分离前是的可以导出的
v7
2015-01-16 18:09:27 +08:00
@leafx 使用 git diff --name-status 给出的文件列表会标示是修改(M)还是删除(D) 简单脚本将删除的去掉就行了
leafx
2015-01-16 18:12:00 +08:00
@v7 非常感谢,不过我们这边客户都是大爷一般,更新都懒得更,更别说执行脚本什么的,现在我的目的就是一直增量的去更新就可以了
v7
2015-01-16 18:17:12 +08:00
@leafx 这个不是在打包文件提供增量之前做的么? 客户不需要执行脚本
leafx
2015-01-16 18:22:20 +08:00
@Delbert 这个包应该是完整的包吧 小弟需要的仅仅一个更新包就好了
v7
2015-01-16 18:35:55 +08:00
git archive -o update.zip NEW_COMMIT_ID_HERE $(git diff --name-only --diff-filter=M OLD_COMMIT_ID_HERE NEW_COMMIT_ID_HERE)
v7
2015-01-16 18:38:21 +08:00
git archive -o update.zip NEW_COMMIT_ID_HERE $(git diff --name-only --diff-filter=[A,M] OLD_COMMIT_ID_HERE NEW_COMMIT_ID_HERE)
这条有新添加文件也会更新
leafx
2015-01-16 18:47:58 +08:00
@v7 我这还是会出现一些问题,不纠结了,回头到MAC
leafx
2015-01-16 18:48:12 +08:00
@v7 我这还是会出现一些问题,不纠结了,回头到MAC上试一试
v7
2015-01-16 18:50:16 +08:00
@leafx ps: 你这样生成不是增量 而是打包了有改动的文件而已 做apply的时候应该做文件的替换
zealic
2015-01-16 20:35:38 +08:00
@leafx 感觉似乎是中文文件名导致的问题。

1. 确定你的 git 版本 > 1.8.x
2. 仓库建立时使用的 git 版本 > 1.8.x

如果 345 是 commit 的话,先确定你的工作分支包含 NEW_COMMIT and OLD_COMMIT,并确保他们的连通性。
leafx
2015-01-16 23:54:46 +08:00
@zealic 非常感谢,能确定的是 commit是没问题的,明天检查下git版本

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/162720

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX