将批处理脚本中的Git ID存储在变量中
问题描述:
我正在与jenkins和git一起工作。我想在当前提交和提交之前获得区别。我想让这个当前和以前的提交ID在运行时生成。 我在批处理文件中使用它,但它不执行git rev-parse命令并将散列ID存储在prev_com和curr_com中。任何帮助表示赞赏。将批处理脚本中的Git ID存储在变量中
cd "C:\Users\TF255014\Eclipse Projects Repo\Hello World"
set prev_com=${git rev-parse @~}
set curr_com=${git rev-parse HEAD}
echo %prev_com%
git diff %prev_com% %curr_com%
答
好像你混合bash
和batch
scrips。如果您使用的是Windows,则可以使用“临时”文件分配命令给一个变量输出:
git rev-parse @~ > prev_com.txt
set /p prev_com=<prev_com.txt
git rev-parse HEAD > curr_com.txt
set /p curr_com=<curr_com.txt
或循环:
for /f %%i in ('git rev-parse @~') do set prev_com=%%i
for /f %%i in ('git rev-parse HEAD') do set curr_com=%%i
下一个bash
脚本将工作:
prev_com=$(git rev-parse @~)
除此之外,我不认为你需要两个变量。你可以简单地运行:
git show HEAD
,或者只得到了DIFF:
git show --pretty= HEAD
+0
非常感谢。我不熟悉批处理脚本,因此将语法与bash脚本相混淆。再次感谢 :) – user3768904
你不能用SET语句命令的输出分配给一个变量像您可以在BASH。打开一个cmd提示符并键入:'set /?'。你不会看到任何语法来做到这一点。 – Squashman