我设置了一个gitosis托管的git服务器.
git clone 没关系.
但是当我设置gitweb通过gitweb.conf如下:
$projectroot = "/srv/gitosis/repositories";
$git_temp = "/tmp";
$home_text = "indextext.html";
$projects_list = "/srv/gitosis/gitosis/projects.list";
$stylesheet = "/gitweb/gitweb.css";
$logo = "/gitweb/git-logo.png";
$favicon = "/gitweb/git-favicon.png";
Run Code Online (Sandbox Code Playgroud)
顺便说一下,commet被删除了,因为特殊符号#正在使用粗体前缀.
" 403 Forbidden - No projects found"当我通过访问的GitWeb报道" HTTP://localhost/cgi-bin/gitweb.cgi "
我检查了projects.list文件是否为空,这是gitweb访问失败的原因吗?什么是正确的内容?我可以手动添加吗?
我已经搜索并搜索了几个小时,以解决这个问题并且没有尝试过任何工作.让我先说一下,虽然之前我使用过*nix,但我几乎都是菜鸟,所以我确定我错过了某个地方设置Git的一步.
我在网络上设置了一个Ubuntu盒子来托管我们新的Git仓库.这个盒子正在运行Git,Gitosis以及ViewGit.似乎所有东西都设置正确,我可以查看我在ViewGit中添加的repo.问题是当我在Windows中通过TortoiseGit克隆回购时.当我输入"git@10.10.0.144:/home/git/Plugins/.git/"的地址时,它会自动询问linux框中"git"用户的密码.我可以将此地址从"git @"更改为系统上的任何其他用户名,它也会询问该用户的密码.在任何情况下,输入该用户的密码都会继续将repo克隆到本地系统.分支,放置和拉取也会要求输入密码,如果输入,一切都能正常运行.
我已经在我试过的Windows框上创建了RSA pub文件(通过git bash)并将它们存储在gitosis的keydir文件夹中,以及添加用户gitosis.conf文件(rsa的名称)文件减去.pub).我还修改了我的sshd_config文件以包含"AllowUsers git"以及我在系统上的用户名.我很茫然,似乎不是一个好主意,让我想要访问此存储库的每个人都有服务器IP地址,用户名,然后是该用户名的密码,这样他们就可以下载一些代码.谢谢您的帮助!
这时我通过gitosis添加了一个git repo.我使用的手册是http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
我可以克隆它并通过私有和公共密钥(在gentoo上)通过ssh auth推送它,但是使用Git Extensions的Windows用户不能.SSH密钥放在$ HOME/.ssh中,ssh要求输入密码.也没有密码,也没有密码(来自私人ssh密钥)不匹配.
Redmine需要一个裸仓库,所以我克隆了我本地机器上的gitosis回购并将其移动到服务器(redmine + git),然后尝试同步如此显示 http://www.redmine.org/projects/redmine/wiki/HowTo_keep_in_sync_your_git_repository_for_redmine 但它再次要求输入密码!当然我没有使用apache自己的ssh密钥来auth gitosis = _ =(Apache是redmine bare repo的所有者,因为它通过http auth访问它)
无论如何,问题是如何在访问gitosis时使用文件中的私有ssh密钥?
===
部分解决了!
ssh-keygen -t rsa生成密钥,其名称正好是id_rsa和id_rsa.pub.如果你跑,ssh -vvv gitosis@your-server.com你应该看到类似的东西
debug1: Authentications that can continue: publickey,keyboard-interactive
…
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: user@domain-user
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Trying private key: /home/user/.ssh/id_rsa
debug3: no such …Run Code Online (Sandbox Code Playgroud) 所以我从其他一些开发人员那里继承了一个相当大的代码库,代码存储在各种git存储库中.
有时候,很难知道特定代码片段可能位于哪个项目中,或者这段代码是否存在于git中.
我想要做的是为一些特定的文本grep所有项目.
我正在使用gitosis,因此所有git存储库都存储在/ home/git/repositories中,结构如下:
/home/git/repositories
|- project1
|- HEAD
|- branches
|- config
|- description
|- hooks
|- info
|- objects
|- refs
|- project2
|- ...
Run Code Online (Sandbox Code Playgroud)
我已经尝试过对象目录中的东西做一个递归grep,如下所示:
grep -Hr "text" /home/git/repositories/*/objects
Run Code Online (Sandbox Code Playgroud)
这当然无法正常工作,因为对象存储在git的自定义格式中.
做什么?
我使用以下的教程设置了gitosis:
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
我发现在gitosis.conf中添加适当的权限后,我无法推送和创建新的存储库.我会不断得到"读取访问被拒绝"错误.我最终检查了包含我更新的gitosis.conf文件的服务器上的实际存储库.但是,当我检查位于gitosis用户的主文件夹中的'.gitosis.conf'文件时,我发现它没有更新.一旦我用存储库中的文件替换了这个文件的内容,我就能够创建并使用新的存储库而没有任何问题.
有谁知道是什么原因引起的?我知道gitosis使用更新后的挂钩来适当地更新服务器,所以我认为问题很可能就在于此.
提前致谢!布赖恩
我们使用gitosis运行GIT存储库,我们需要禁止推动团队中的某些人.
所以我希望每个人都可以读取所有存储库(获得+10个repo和+20个用户可以执行提交拉动和推送的机器)
我只需要限制推送,我希望用户可以继续做拉动和克隆而不是推送,只有2个用户可以推送到主人.
那么任何想法?也许在推送前要问密码?
我在服务器上设置git和gitosis来管理我的回购.它适用于我设置的初始shell帐户,即我可以运行:
git clone git@MYSERVER:gitosis-admin.git
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用我创建的单独帐户(通过gitosis.conf)时,它一直要求输入密码:
git clone johndoe@MYSERVER:gitosis-admin.git
Run Code Online (Sandbox Code Playgroud)
我设置了SSH密钥并将副本推送到服务器上的keydir.这个问题似乎解决了同样的问题,但给出的解决方案是tortoisegit.
我怎么告诉git使用ssh密钥而不是要求输入密码?
我在我的服务器上使用GIT,并且每次更新我的存储库时,我都试图获取一个PHP文件.我正在尝试使用我的更新后挂钩来实现这一目标.
这是我试过的代码:
#!/bin/sh
echo
echo "**** Pulling changes into Prime [Hub's post-update hook]"
echo
cd $HOME/www || exit
unset GIT_DIR
git pull hub master
exec git-update-server-info
php /path/to/directory/file.php
Run Code Online (Sandbox Code Playgroud)
我似乎无法让PHP执行.任何人都可以对此发光吗?
对不起我的无知 - 但是获得Gitosis或Gitolite会有什么好处.
我有一台Synology NAS服务器在运行,但我不能只在NAS上的任何文件夹上创建一个"裸"吗?
问候