私は非常にシンプルな 'デプロイ'スクリプトを実行して、post-update
フックを私の裸のgitリポジトリに入れました。GITとRuby:GIT_DIR変数をRubyスクリプトの中から解除するにはどうすればよいですか?
live domain = ~/mydomain.com
staging domain = ~/stage.mydomain.com
git repo location = ~/git.mydomain.com/thisrepo.git (bare)
core = ~/git.mydomain.com/thisrepo.git
core == added remote into each live & stage gits
次のように
変数は、両方のlive
& stage
は(非裸)のgitリポジトリを初期化していると私はgit pull core stage
をするように(core
という名前)それらのそれぞれにリモートとしての私の裸のレポを追加しましたまたはgit pull core live
の場合、core
レポのbranch
から更新されたファイルを取得します。私は、例えば、次のgitコマンドgit pull core stage
を実行するためにunset GIT_DIR
を使用していますthis bash script hereからのファイルの「更新」を適応しようとしている
#!/usr/bin/env ruby
# Loop over each passed in argument
ARGV.each do |branch|
# If it matches the stage then 'update' the staging files
if branch == "refs/heads/stage"
puts ""
puts "Looks like the staging branch was updated."
puts "Running a tree checkout now…"
puts ""
`cd ~/stage.mydomain.com`
`unset GIT_DIR` # <= breaks!
`git pull core stage`
puts ""
puts "Tree pull completed on staging branch."
puts ""
# If it's a live site update, update those files
elsif branch == "refs/heads/live"
puts ""
puts "Looks like the live branch was updated."
puts "Running a tree checkout now…"
puts ""
`cd ~/mydomain.com`
`unset GIT_DIR` # <= breaks!
`git pull core live`
puts ""
puts "Tree checkout completed on live branch."
puts ""
end
end
次のように
スクリプトです。 core
は、サーバー上の別のフォルダにというbare
というRepoが追加されています。
は、しかし、私の上にスクリプトを実行するときに次のエラーを取得しています:
remote: hooks/post-update:35: command not found: unset GIT_DIR
remote: fatal: /usr/lib/git-core/git-pull cannot be used without a working tree.
は私のRubyスクリプト内bashスクリプトでunset GIT_DIR
と同じことを行うための方法はありますか?
多くのおかげで、
Jannis
これは魔法のように動作します:
はこれを試してみてください!どうもありがとうございました。それはすべて今稼働している!特別な書式のコメントをコミットノートに渡すことで同じことをする方法を知るために:) '[update:live]'や '[update:stage]'のようなものがこの 'pull 'アクション... – Jannis
ちょうど私に悲しみのトンを保存しました - ありがとう!これらの変数にはこのような重要性があることを認識していませんでした! –