无法推送到远程GIT仓库 -- "[...] 不是一个git仓库"

3

我已经在我的服务器上的适当文件夹(子域名根目录git.mydomain.com)中使用以下命令设置了GIT仓库:

mkdir foo.git
cd foo.git
git init --bare --shared

这将使仓库通过URL git.mydomain.com/foo.git 可用。
在我的客户端上,尝试使用以下命令将提交的文件推送到服务器: mkdir foo
cd foo
git init
git remote add foo myUser@git.mydomain.com:foo.git
git add readme.txt
git commit -m "foo"
git push foo master
.. entering user password ..

仅返回以下结果:

fatal: 'foo.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

然而,按照不同的指南操作后,似乎我无法解决这个问题。如有建议,敬请赐教。请注意,我对GIT还不是很了解。


如果您使用以下推送命令会发生什么:git push myUser@git.mydomain.com:foo.git master - Peter Ritchie
@PeterRitchie 遗憾的是,这给了我同样的错误。 - Zar
看起来与这个非常相似:http://thelucid.com/2008/12/02/git-setting-up-a-remote-repository-and-doing-an-initial-push/ 但它包括调用git_update_server_info。 - Peter Ritchie
@PeterRitchie确实,那是我遵循的(其中之一的)指南,但使用“git update-server-info”没有任何变化;-/。 - Zar
在浏览器上访问我的代码库时得到了403错误?这可能是一个导致问题的因素吗? - Zar
1个回答

7

这行代码 git remote add foo myUser@git.mydomain.com:foo.git 假设目录 foo.git 在 myUser 用户的主目录中。更好的做法是使用绝对路径,例如 git remote add foo myUser@git.mydomain.com:/home/gitrepos/foo.git

如果你在共享服务器上,可以通过执行以下命令来查看你的主目录路径:

echo $HOME

根据我的情况,可得:

home/u/01234/

如果我将存储库存储在我的主目录下的www/git/文件夹中,则该命令可能如下所示:

git remote add origin myUser@mydomain.com:/home/u/01234/www/git/foo.git

非常感谢您的回答,解决了我的问题。如果您不介意,我会编辑您的答案,并添加一些关于如何找到特定路径的基本信息,以使其更适合新手。 - Zar
谢谢@Zar。我很高兴能够帮助你解决问题。我真的很感激你对我的回答进行了扩展(因为我下线了,无法跟进),以帮助其他遇到类似情况的人。 - karmakaze

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接