首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导出最后两个标签git之间的文件

导出最后两个标签git之间的文件
EN

Stack Overflow用户
提问于 2021-07-29 14:33:43
回答 1查看 43关注 0票数 1

我的Server应用程序是使用C#编写的,并使用ASP.NET Server存储过程。

我使用Git进行代码源代码控制,每次部署时,我都会创建一个标记来定义所部署的版本。

例如:tag1_2021_07_29_11_00tag2_2021_07_30_09_01...而标签将是我部署的时间,这次部署可以随机。

我需要运行的存储过程是两个标记之间的列表文件:

tag2_2021_07_30_09_01tag1_2021_07_29_11_00

(示例sp1.sqlsp2.sqlsp3.sql我将在SQL Server Management Studio中运行它)

为了节省时间,我想用cmd自动部署。

我成功地创建了cmd命令来构建和导出部署web源代码,但我不知道如何将tag1tag2之间的.sql文件导出到一个文件夹中。

请注意,当我显示TortoiseGit并选择我的列表git log存储过程文件sp1.sqlsp2.sql...时,我看到git log有一个函数"export this version..“。

有没有人可以帮我用cmd导出列表存储?

这是我的cmd build命令,我需要和一些cmd行来导出list SQL,以便与我的源码一起压缩(到deploy_PROD_%datetime%.7z中):

代码语言:javascript
复制
@echo off
for /f %%a in ('powershell -Command "Get-Date -format yyyy.MM.dd__HH.mm"') do set datetime=%%a

del /s /q  "D:\botdeploy\*"
cd /D D:\Source & git checkout PROD & git pull & git tag PROD_deploy_%datetime% & git push --tags
cd /D "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Msbuild" D:\Source\CRM.csproj  /t:Restore,Rebuild /p:outdir="D:\botdeploy\\" /p:Configuration=Release & del  /q "D:\botdeploy\_PublishedWebsites\CRM\Web.config" & "C:\Program Files\7-Zip\7z" a -t7z C:\Users\Nam\Desktop\deploy_PROD_%datetime%.7z D:\botdeploy\_PublishedWebsites\CRM\*
pause
EN

回答 1

Stack Overflow用户

发布于 2021-07-29 07:07:21

如果要列出在两个标记之间添加/修改(但不删除)的文件,请参见,as in here

代码语言:javascript
复制
git diff --name-only --relative --diff-filter=AM tag1 tag2 > list

一旦你有了一个文件列表,你就可以在一个专用的克隆存储库中使用它,在那里你只需要can sparse checkout你想要的文件(使用git sparse-checkout):

代码语言:javascript
复制
git clone --filter=blob:none --no-checkout --branch tag2 /url/remote/repo
cd repo
git sparse-checkout init 
# for each file in list
git sparse-checkout add <aFile>
git read-tree -mu HEAD

最后,您可以对该存储库执行git archive操作,以便以正确的版本(tag2,最新版本)获得仅包含所需文件的归档文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68571145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档