git添加到裸仓库

时间:2011-07-16 13:22:51

标签: git git-push git-bare

我在服务器上使用:git init --bare对存储库进行了操作,我想将分支推送到它。

git push origin Dev

但是我得到了

remote fatal: you are a branch waiting to be born.

我做错了什么? 如果我不使用--bare似乎有效,但我认为这就是我应该使用的。

编辑: 如果我在服务器上有一个post-receive挂钩,我只会得到这个错误。 我在收到后的钩子里有这个:

#!/bin/sh
GIT_WORK_TREE=/var/www/UML git checkout -f

我希望这一切都是在我推送到远程

时更新网络服务器

我的git配置:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = dotGitOnly
[gui]
    wmstate = normal
    geometry = 887x427+25+25 330 192
[branch "master"]
[branch "Dev"]
[remote "origin"]
    url = ssh://mike628@192.168.2.2/GR
    fetch = +refs/heads/*:refs/remotes/origin/*

1 个答案:

答案 0 :(得分:0)

您是先克隆远程(裸)存储库还是正确设置远程origin?是否存在名为Dev的分支并且有提交?确保在该分支上至少有一个提交。


在你的钩子中尝试git reset --hard而不是git checkout -f。也尝试在最后添加exit 0;(尽管这只会隐藏语句的退出代码)。钩子里的东西都失败了。是钩子脚本上设置的可执行位吗? 如果直接在服务器上执行钩子脚本而没有git干预会发生什么?

还要确保您的git进程在/var/www/UML目录中具有写权限,因为脚本由运行git守护程序的用户/组执行