2017-10-19 152 views
1

我正在與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% 
+0

你不能用SET語句命令的輸出分配給一個變量像您可以在BASH。打開一個cmd提示符並鍵入:'set /?'。你不會看到任何語法來做到這一點。 – Squashman

回答

1

好像你混合bashbatch 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

相關問題