【问题标题】:git add to bare repogit 添加到裸仓库
【发布时间】:2011-10-06 18:06:22
【问题描述】:

我在服务器上创建了一个带有 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/*

【问题讨论】:

  • 本地存储库中git status 的输出是什么?

标签: git git-push git-bare


【解决方案1】:

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


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

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

【讨论】:

    猜你喜欢
    • 2011-11-26
    • 1970-01-01
    • 2013-04-13
    • 2018-08-26
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    相关资源
    最近更新 更多