How to set up a Git hook so that after pushing to ssh://peter@foo.com/~/bar.com.git, it will go to ~/bar.com and do a git pull?

后端 未结 2 854
-上瘾入骨i
-上瘾入骨i 2020-12-08 03:01

I was advised to set up on a remote server

foo.com/~/bar.com       # live webpage content
foo.com/~/bar.com.git   # a bare repo

so, from my

2条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-08 03:25

    You can add a post-receive hook to the ~/bar.com.git repo for this. To do this add to the ~/bar.com.git/hooks/ directory an executable file post-receive with the content:

    #!/bin/sh
    
    unset $(git rev-parse --local-env-vars)
    cd ~/bar.com
    git pull
    

    Make sure the post-receive file has the executable bits(e.g. 755).

    Now whenever something is pushed to the ~/bar.com.git repo, the ~/bar.com repo is updated automatically.

    See also

    • getting "fatal: not a git repository: '.'" when using post-update hook to execute 'git pull' on another repo
    • Git - post-receive hook with git pull “Failed to find a valid git directory”

    to understand why unsetting some environment variables is necessary.

提交回复
热议问题