在批处理脚本中将Git ID存储在变量中

时间:2017-10-19 18:27:17

标签: git batch-file

我正在和jenkins和git一起工作。我希望在当前提交和当前提交之间得到区别。我想让这个当前和之前的提交id; s在运行时生成。  我在批处理文件中使用它,但它没有执行git rev-parse命令并将hash ID存储在prev_com和curr_com中。任何帮助表示赞赏。

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%

1 个答案:

答案 0 :(得分:2)

似乎是在混合bashbatch潦草。如果您使用的是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循环:

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

或者,只获得差异:

git show --pretty= HEAD