- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在 Archlinux 上尝试配置 gitosis 时遇到了一些问题
http://wiki.archlinux.org/index.php/Setting_Up_Git_ACL_Using_gitosis
我引用了这篇 wiki 文章并成功安装了 gitosis。
$ sudo pacman -U gitosis-git-20090525-1-i686.pkg.tar.gz
$ sudo -H -u gitosis gitosis-init < /tmp/id_rsa.pub
并修改/srv/gitosis/.ssh/authorized_keys 以包含我本地用户的 id_rsa.pub。
但是当我以本地用户身份运行 git clone
时,
$ git clone gitosis@host:gitosis-admin.git
它说
Initialized empty Git repository in /home/wyx/gitosis-admin/.git/
gitosis@10.132.140.73's password: *****
fatal: 'gitosis-admin.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
所以git clone操作失败了。我想知道为什么它会尝试在我的本地用户目录 (/home/wyx) 中初始化一个空的 git 存储库?并且由于我已经在 .ssh/authorized_keys 中添加了本地用户的 id_rsa.pub,为什么它仍然要求输入密码?
最佳答案
创建了一个空的存储库,因为这正是 git 的工作方式:它必须先初始化一个存储库,然后才能开始将远程对象 pull 入其中。不幸的是,这意味着您必须在再次尝试克隆之前手动删除空存储库。
至于克隆失败的原因,看起来你对远程存储库路径使用了错误的语法; git clone
不使用 scp 语法。事实上,如果您不指定克隆协议(protocol),我相信它会采用 git 协议(protocol)而不是 ssh,这可能就是它要求您输入密码的原因。试试这个:
$ git clone ssh://gitosis@host/~/gitosis-admin.git
关于即使给出了公钥,Gitosis 也需要密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/907004/
我是一名优秀的程序员,十分优秀!