如何在 Unix 中设置公共 Git 存储库

如何在 Unix 中设置公共 Git 存储库

我已经设置了一些私有存储库,我可以通过 SSH 提交,但在设置公共存储库时遇到了问题。以下是我目前所做的:

通过 ssh 登录我的服务器

$ cd public_html/repos/
$ mkdir test
$ cd test 
$ git --bare init
$ touch git-daemon-export-ok # tell GIT it's ok to export this project
$ chmod 777 -R ../test #making sure the directory had full read write execute permissions
$ exit # exit out of ssh

$ mkdir test_porject
$ cd test_project
$ touch README.txt
$ git init #Initialized empty Git repository in ~/test_porject
$ git add .
$ git commit -m "initial commit"
$ git remote add origin http://repos.mydomain.com/test
$ git push origin master

这是我得到的错误:错误:请求的 URL 返回错误:访问时 500http://repos.mydomain.com/test/info/refs 致命:HTTP 请求失败

嗯???不知道为什么这不起作用。如果你去http://repos.mydomain.com/我没有收到任何错误。如能得到任何帮助我将不胜感激。

答案1

我怀疑上面的记录实际上并不代表您输入的实际命令。以下是设置 http 可访问存储库的方法,这里的命令(和输出)正是我输入的内容:

创建存储库:

$ mkdir -p public_html/git
$ cd public_html/git
$ git init --bare testrepo.git
Initialized empty Git repository in /home/lars/public_html/git/testrepo.git/
$ cd testrepo.git
$ mv hooks/post-update.sample hooks/post-update
$ chmod 755 hooks/post-update

用一些提交来填充它:

$ cd ~/tmp/
$ mkdir testrepo
$ cd testrepo
$ git init
Initialized empty Git repository in /home/lars/tmp/testrepo/.git/
$ echo this is a test > myfile
$ git add myfile
$ git ci -m 'added myfile'
[master (root-commit) eea6564] added myfile
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 myfile
$ git remote add origin ~/public_html/git/testrepo.git
$ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 233 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
To /home/lars/public_html/git/testrepo.git/
 * [new branch]      master -> master

通过 http 克隆它:

$ cd ~/tmp
$ git clone http://localhost/~lars/git/testrepo.git testrepo-cloned
Cloning into testrepo...
$ ls -A testrepo-cloned/
.git  myfile

如果您执行此操作但没有效果,我强烈怀疑您的网络服务器配置存在问题。

答案2

$ git remote 添加原点http://repos.mydomain.com/测试

$ git push origin master

您正在尝试推送到 http 公开的存储库?这行不通。

http://book.git-scm.com/4_setting_up_a_public_repository.html

[…] 其他人应该能够克隆或者来自该 URL [...]

相关内容