很抱歉问题本身质量很差,但我遇到的情况是我所知道的唯一语言与现有术语相冲突。请随意指出正确行话的方向,因为我怀疑如果我知道的话我可以搜索这个答案。
我想使用git创建一个'补丁',其中包含从一个版本的项目更改为另一个版本所需的文件。我不希望实际的GIT补丁根据分支的输出更新主服务器,而是类似于包含自给定更新以来更改的所有文件的zip。
情况是我不想简单地将更新版本的全部内容推送到服务器(有很多文件没有被更改),但同时我不希望有通过并亲自挑选300个文件。
我知道GIT确实有某种类型的FTP部署选项,但我们正在使用的服务没有提供,所以据我所知,我需要的东西类似于商业增量补丁在公司更新产品时分发。我发现GIT不太可能不提供类似于此功能的SOMETHING,但我不知道在哪里/如何找到它。
编辑:因为它从一个答案看起来像它可能是相关的,这个如果对于一个Web应用程序,所以我说的是跟踪css,php,html和js文件,可能有一些艺术卷入了即使源控制系统与艺术不兼容。
答案 0 :(得分:4)
如果您对xargs的管道差异太难,您可以尝试
git archive
git diff
和git archive -o update.zip HEAD $(git diff --name-only HEAD^)
答案 1 :(得分:2)
git diff --name-only HEAD HEAD^
CCodeClasses.cpp
CCodeClasses.h
CTypeClasses.cpp
CTypeClasses.h
CTypeResolver.cpp
CTypeResolver.h
DFSearch.cpp
DFSearch.h
Util.cpp
Util.h
x32wrapper.cpp
x32wrapper.h
mfcreplacements.h
您可以使用提交ID替换HEAD,以获取已更改文件的列表,然后将其传递给tar命令或其他内容。我很想知道是否有更好的方法来做到这一点,因为我需要不时做同样的事情。
答案 2 :(得分:0)
好的,如果我们谈到围绕GIT的以GUI为中心的Windows解决方案,我将能够看到更多异国情调的变态(Git-fanboys,坐下!!!):
具有hg-git扩展名的TortoiseHG(1- Windows 2 - 用于Mercurial SCM的GUI 3)
将git-repository添加到THG中,在changesets-pane中使用context-menu,导出 - 存档 - “仅文件...”
这两个截图都来自我的git-repo,完全由TortoiseHG处理