2016-01-11 11 views
5

はすべてのクローンGitのレポを作ります。私は、例えばMakefileの中で、後に使用することができます変数にハッシュをコミットMakefileでは、git commitハッシュをフェッチして変数に代入する方法はありますか?

をコミットハッシュが何であるかを知っているとのgitを割り当てます

all: download 
     echo '$(GIT_COMMIT)' 

download: 
     cd buildarea && git clone [email protected]:proj/project.git 
     $(eval GIT_COMMIT = $(shell cd buildarea/project && git log -l --pretty=format:"%H")) 
     echo '$(GIT_COMMIT)' 
+0

1)* Makeを使用しないで(つまりgitを直接使用する)、2)ファイルにハッシュを格納しますか? – Beta

+0

1)私は「gitのログ-1 --pretty =形式:」使用2)本当に唯一の方法ということです%のHを」 – user2569618

+0

質問被写体がいっぱい質問自体に答えているので、あなたの実際の質問()方法は何でしょうか?そこ最新のコミットのハッシュを取得する_multiple_の方法があり、あなたは大丈夫ですか、あなたのコードがあなたを失敗している。 – Guildencrantz

答えて

1

どのようにシェル機能と2つのターゲットを使用するのですか?

all: download getver 

getver: VER=$(shell cd buildarea/project && git log -1 --pretty=format:"%H") 
getver: 
     @echo GIT_COMMIT=$(VER) 

download: 
     mkdir -p buildarea && cd buildarea && [email protected]:proj/project.git 
+0

だけのmodは' getverました – user2569618

0

私は正確な理由はわからないが、git clone$(shell)後のディレクトリにcdにできないことが表示されます。あなたができることは、ただ一つの$(shell)コールで行動全体を実行することです。

all: download 
     echo '$(GIT_COMMIT)' 

download: 
     $(eval GIT_COMMIT = $(shell git clone [email protected]:proj/project.git buildarea/project && cd buildarea/project && git rev-parse HEAD)) 
     echo '$(GIT_COMMIT)' 
関連する問題