在之前有寫過一篇 Git 用 archive 匯出原始碼,今天接收到一項需求是 RD 在 git 切 branch 後 push 到 Remote Server 需要自動匯出新建的 branch
這次一樣借用 git archive 的功能來達成,用 git branch 的方式來取得 branch 版本
$ vim /git/site/hooks/post-receive #!/bin/bash site="sha" export_dir="/usr/share/nginx/html" branch=(`git branch | sed 's/^..//'`) for (( i = 0; i < ${#branch[@]}; i++ )); do if [[ ! -d ${export_dir}/${site}.${branch[i]} ]]; then mkdir -p ${export_dir}/${site}.${branch[i]} fi git archive ${branch[i]} | tar -x -C ${export_dir}/${site}.${branch[i]} fi done
用 sed 過濾掉乾淨的 branch 清單後,在 for 建立資料夾以及 archive
當你 push remote server,就會自動掛勾 post-receive 執行裡面的 script !!