2017-10-19 7 views
1

私はジェンキンとgitで作業しています。私は、現在のコミットと現在のコミットとの間に差をつけたいと思う。私は実行時に生成されるこの現在および前のコミットIDを作成します。 これをバッチファイルで使用していますが、git rev-parseコマンドを実行しておらず、prev_comとcurr_comにハッシュIDを格納していません。どんな助けもありがとうございます。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

あなたは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 @~) 

とは別に、私はあなたが2つの変数を必要とは思いません。あなたは、単に実行することができます:

git show HEAD 

または、唯一の差分を取得するために:

git show --pretty= HEAD 
+0

ありがとうございました。私はバッチスクリプトに新しく、構文をbashスクリプトと混同しています。再度、感謝します :) – user3768904

関連する問題