how to process files on a branch in post-receive hook in git

前端 未结 1 1798
谎友^
谎友^ 2020-12-01 22:33

I have a remote server on which I have created a bare git repository.

I would like to create a hook so that a given script is run on the latest code received on any

相关标签:
1条回答
  • 2020-12-01 23:27
    • For 1), you have an example of reading the branch name (through stdin):
      "Not able to detect branch from Git post-receive hook"
    • For 2), you need to set GIT_WORK_TREE appropriately:
      "Managing website using git + post-receive hook: error pushing changes"

    See both techniques combined in "Git post-receive for multiple remote branches and work-trees":

    #!/bin/bash
    
    while read oldrev newrev ref
    do
      branch=`echo $ref | cut -d/ -f3`
    
      if [ "master" == "$branch" ]; then
        git --work-tree=/path/under/root/dir/live-site/ checkout -f $branch
        echo 'Changes pushed live.'
      fi
    
      if [ "dev" == "$branch" ]; then
        git --work-tree=/path/under/root/dir/dev-site/ checkout -f $branch
        echo 'Changes pushed to dev.'
      fi
    done
    
    0 讨论(0)
提交回复
热议问题