远程网站与git local branch

时间:2015-06-03 18:34:22

标签: git amazon-web-services amazon-ec2

在EC2 AWS实例中,我创建了一个远程裸git存储库:

@server:~$ mkdir -p /home/myuser/domain.git && chmod 770 /home/myuser/domain.git && cd /home/myuser/domain.git && git init --bare

使用post-receive hook:

@server:~$ nano hooks/post-receive

钩子脚本是:

#!/bin/sh
sudo git --work-tree=/var/www/domain --git-dir=/home/myuser/domain.git checkout -f

它有权执行:

@server:~$ chmod +x hooks/post-receive

我在以下的当地代表处工作:

@local:~$ 
    git init
    git remote add server server:/home/myuser/domain.git
    git checkout -b www-dev
    git add .
    git commit -am "Initial"

但是,当我推动更改时:

@local:~$ git push server www-dev

钩子失败了:

remote: fatal: You are on a branch yet to be born
To server:/home/myuser/domain.git
   06709ae..d1d7ead  www-dev -> www-dev

该网站未更新。为什么?

我怀疑问题是由根调用git checkout -f引起的。但只有root才能写入 / var / www / domain

1 个答案:

答案 0 :(得分:0)

尴尬的解决方案,你必须首先推动分支:

@local:~$ 
    git init
    git remote add server server:/home/myuser/domain.git
    git add .
    git commit -am "Initial"
    git checkout -b www-dev
    git push server master

之后你可以结账到另一家分店:

@local:~$ git checkout -b www-dev

但是还有另一个问题:它只部署master分支。可以找到此问题的解决方案here