我在我的Ubuntu服务器上设置了gitolite,可以添加用户,创建空存储库,克隆空存储库,添加文件,在本地提交,并将git push origin master其发送到gitolite.
我还可以在XCode4中创建一个项目,它有自己的git存储库,并在本地提交更改.
现在我想在gitolite中有另一个副本(可能其他人可以使用,但也可以作为另一个副本).这就是我被困住的地方,我是git的完全新手(只是真的使用过XCode git功能).有人可以指导我吗?
我在git使用Gitolite 时遇到了问题.
当我尝试这个:
git push origin :refs/tags/deployment
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
remote: D NAME/install.py repos michael DENIED by fallthru
remote: error: hook declined to update refs/tags/deployment
To gitolite@admin:repos
! [remote rejected] deployment (hook declined)
error: failed to push some refs to 'gitolite@admin:repos'
Run Code Online (Sandbox Code Playgroud)
我已经给了deploy[用户michael所属的]组的权限,允许删除Gitolite配置中的分支:
@deply = michael
repo repos
RWD = @deply
Run Code Online (Sandbox Code Playgroud)
我看过这篇文章:" 无法推入Git.为什么? "
但我没有使用我所知道的任何钩子,也找不到任何可能与之相关的东西.
或许有什么东西可能会丢失吗?
有人遇到过这个吗?
我正在使用Gitlab,我正在尝试按照这些说明将我的gitolite v2升级到v3:
"如果这个问题发生在2.9.x,你应该重新安装gitolite.
1)备份所有存储库.只需在其他地方复制/ home/git/repositories/*即可.
2)安装新的gitolite.请参阅https://github.com/gitlabhq/gitlabhq/blob/master/doc/installation.md
3)复制存储库.
4)sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_keys && sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_repos
就这样.
该步骤还与想要将gitolite v2更新为v3的用户有关"
我的Gemfile和Gemfile.lock中有rb-inotify,如下所示:
gitlabhq@build:~/gitlabhq$ grep notify Gemfile
gem 'rb-inotify', :require => linux_only('rb-inotify')
gitlabhq@build:~/gitlabhq$ grep notify Gemfile.lock
rb-inotify (0.8.8)
rb-inotify
Run Code Online (Sandbox Code Playgroud)
我试图使用以下命令更新我的密钥和repos,但我总是得到错误" 没有这样的文件加载--rb-inotify "
gitlabhq@geminibuild:~/gitlabhq$ sudo -u gitlabhq -H bundle exec rake gitlab:gitolite:update_keys
rake aborted!
no such file to load -- rb-inotify
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)
我试图进行捆绑安装,"使用"列表不包含rb-notify gem.
我试过像这样安装rb-inotify gem:
sudo -u …Run Code Online (Sandbox Code Playgroud) 尝试使用git,我为自托管存储库设置了Gitlab,它看起来很棒.
困扰我的一件事是,似乎任何人都可以像其他人一样提交提交(即:欺骗提交).
即:我在Gitlab中使用公钥访问设置了我的用户
现在只有那些用户可以推送 - 使用他们的私有SSH密钥 - 但似乎没有什么能阻止User2调整他们的gitconfig以User1的名义提交并推动它?
gitlab和git -show中的历史记录将提交者显示为User1的gitconfig文本.我希望Gitlab将与推送ssh密钥相关联的用户名标记到历史记录中,以便我知道用于推送的ssh密钥.
场景是repo将在团队环境中使用,而且不允许欺骗性提交似乎是谨慎的.
我已经完成了一些阅读并理解,通常可能会改变工作流程以拥有一个受祝福的存储库,并且只有可信任的提交者才能推动 - 但在此阶段学习git时我希望保持更集中/ SVN类型的工作流程.
这可能是使用钩子吗?
有一个类似的问题回答gitosis,但即使这似乎只强制提交者来自一系列用户不会像User2那样停止User1欺骗 - 据我所知.
PS:也许我问的是错误的问题 - 在gitlab中有没有办法发现哪个ssh密钥(以及真正的用户)用于将代码推送到repo中?从我能找到的东西看来并不是这样.
我似乎无法让TeamCity阅读我的Git(Gitolite)存储库......我得到一个例外:
List remote refs failed: com.jcraft.jsch.JSchException: Auth fail
Run Code Online (Sandbox Code Playgroud)
我尝试过:(我使用PuTTY将它们导出为OpenSSH格式)
所有私钥都有密码,我使用自定义私钥设置进行配置.我的获取网址如下所示:git:ssh:// user @ host/path/to/repository
无论我尝试什么......我总是得到同样的例外:
jetbrains.buildServer.vcs.VcsException: List remote refs failed: com.jcraft.jsch.JSchException: Auth fail
at jetbrains.buildServer.buildTriggers.vcs.git.OperationContext.wrapException(OperationContext.java:165)
at jetbrains.buildServer.buildTriggers.vcs.git.GitVcsSupport.getRemoteRefs(GitVcsSupport.java:339)
at jetbrains.buildServer.buildTriggers.vcs.git.GitVcsSupport.getCurrentState(GitVcsSupport.java:128)
at jetbrains.buildServer.buildTriggers.vcs.git.TestConnectionCommand.checkFetchConnection(TestConnectionCommand.java:95)
at jetbrains.buildServer.buildTriggers.vcs.git.TestConnectionCommand.testConnection(TestConnectionCommand.java:68)
at jetbrains.buildServer.buildTriggers.vcs.git.GitVcsSupport.testConnection(GitVcsSupport.java:252)
at jetbrains.vcs.api.services.impl.TestConnectionServiceProvider$1.testConnection(TestConnectionServiceProvider.java:1)
at jetbrains.buildServer.controllers.admin.projects.TestConnectionCommand.runTestConnection(TestConnectionCommand.java:3)
at jetbrains.buildServer.controllers.admin.projects.TestConnectionCommand.doTestConnection(TestConnectionCommand.java:30)
at jetbrains.buildServer.controllers.admin.projects.EditVcsRootsController.doPost(EditVcsRootsController.java:176)
at jetbrains.buildServer.controllers.BaseFormXmlController$1.handleRequest(BaseFormXmlController.java:53)
at jetbrains.buildServer.controllers.AjaxRequestProcessor.processRequest(AjaxRequestProcessor.java:45)
at jetbrains.buildServer.controllers.BaseFormXmlController.doHandle(BaseFormXmlController.java:51)
at jetbrains.buildServer.controllers.BaseController.handleRequestInternal(BaseController.java:75)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at jetbrains.buildServer.maintenance.TeamCityDispatcherServlet.service(TeamCityDispatcherServlet.java:28)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) …Run Code Online (Sandbox Code Playgroud) 最初我尝试使用gitosis管理公司的git存储库,后来注意到gitolite是一种增强gitosis.
而且我也听说过gerrit可以用于同一目的,但从描述来看,gerrit主要用于代码审查.
那么这是设置git服务器的最佳方式
你能提一些建议吗?
BTW:http://gitorious.org/将来会被考虑
我试图让gitweb与gitolite一起工作......但到目前为止还不成功.
我正在使用RedHat Linux机器.一个名为gitexists 的用户.
gitolite安装在:/home/git
存储库位置:/home/git/repositories
请注意,gitweb与普通香草git一起工作正常.现在我正在尝试使用gitolite.
以下是我的文件的样子:
/etc/gitweb.conf
$projectroot = "/home/git/repositories";
@git_base_url_list = qw(ssh://[MyHostName]/home/git/projects.list);
$projects_list = "/home/git/projects.list"
Run Code Online (Sandbox Code Playgroud)/home/git/projects.list
myrepo1.git
myrepo2.git
Run Code Online (Sandbox Code Playgroud)/home/git/.gitolite.rc:
$PROJECTS_LIST = $ENV{HOME} . "/projects.list";
$GL_GITCONFIG_KEYS = "gitweb.url receive.denyNonFastforwards receive.denyDeletes";
Run Code Online (Sandbox Code Playgroud)我错过了什么配置?我没有对Apache做过任何更改.
Web URL:http://MyHostName/git
这给出了404错误说 - 找不到存储库.
我有一个工作的gitolite服务器.但是,我想将它移动到相同的配置,但是在更大的机器上.即使我有gitolite工作,我不确定它下面的字符串.主要是它与ssh的关系.
我想安装gitolite,git-core软件包.并移动git用户的存储库目录.没有钥匙需要改变.它是否正确 ?什么是gitolite对当前服务器的配置关系.我正在使用Ubuntu
我特别对gl-setup感到困惑,它完成了这项工作,但让我对这个过程一无所知.
谢谢
要克隆由gitolite管理的存储库,通常使用以下语法
git clone gitolite@server:repository
Run Code Online (Sandbox Code Playgroud)
这告诉SSH客户端使用gitolite作为用户名连接到服务器的端口22 .当我尝试使用端口号时:
git clone gitolite@server:22:repository
Run Code Online (Sandbox Code Playgroud)
Git抱怨存储库22:存储库不可用.如果SSH服务器使用不同的端口,应该使用什么语法?
我很好奇gitolite这样的程序是如何工作的 - 特别是它们如何与SSH协议交互以提供量身定制的体验.有人可以提供一个例子,说明我可以如何完成以下内容以及我可能在哪里了解更多有关此主题的内容?
? ssh git@github.com
PTY allocation request failed on channel 0
Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
Run Code Online (Sandbox Code Playgroud)
一个附带问题:我的主要语言是JavaScript.是否有可能用NodeJS完成我想要的东西?