Tôi đã viết một tập lệnh 'triển khai' rất đơn giản chạy dưới dạng móc nối post-update
của tôi bên trong repo git trống của tôi.GIT & Ruby: Làm thế nào tôi có thể bỏ đặt biến GIT_DIR từ bên trong một tập lệnh ruby?
Các biến như sau
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
cả live
& stage
đã khởi Repos git (không trần) và tôi đã thêm repo trần của tôi như là một từ xa để mỗi người trong số họ (tên core
) để git pull core stage
hoặc git pull core live
sẽ kéo các tệp được cập nhật từ branch
tương ứng của repo core
.
Kịch bản là như sau:
#!/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
Tôi đã cố gắng thích nghi với những 'cập nhật' các tập tin từ this bash script here trong đó sử dụng các unset GIT_DIR
để chạy git lệnh tiếp theo git pull core stage
ví dụ. core
là số remote
của số bare
repo của tôi trong một thư mục khác trên máy chủ.
Tuy nhiên khi thực hiện kịch bản trên tôi nhận được các lỗi sau đây:
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.
Có cách nào để làm điều tương tự như unset GIT_DIR
trong một kịch bản bash trong kịch bản ruby của tôi?
Rất cám ơn,
Jannis
này hoạt động giống như ma thuật! Cảm ơn nhiều. Có tất cả và chạy ngay bây giờ!Off để tìm hiểu cách làm tương tự bằng cách chuyển qua một chú thích được định dạng đặc biệt vào ghi chú cam kết :) Tôi tự hỏi nếu một cái gì đó như '[update: live]' hay '[update: stage]' có thể được sử dụng để kích hoạt 'pull 'action ... – Jannis
Chỉ cần cứu tôi một nỗi thất vọng - Cảm ơn bạn! Không nhận ra những biến này có ý nghĩa như vậy! –