如何配置git和gitolite以允许特定用户只更改特定目录中的文件?
例如,原始主分支中的文件:
/dir1/
/dir2/file1
/dir2/file2
/dir3/file1
Run Code Online (Sandbox Code Playgroud)
用户kathrine
,只允许更改/dir2/file1
和/dir2/file2
$kathrine: git clone git@example.com:test.git
Run Code Online (Sandbox Code Playgroud)
结果是:
/dir2/file1
/dir2/file2
Run Code Online (Sandbox Code Playgroud)
是否有任何per-dir指令,gitolite.conf
或者我是否应该为此用户配置git with new branch?
我只是不希望图形设计师有权访问源代码文件.
对版本控制很重要的一件事是知道谁做了什么改变.如果事情发生了变化,我不知道为什么要做出改变,我会查看历史并询问做出改变的人.当我正在探索git时,让我对这个功能有点紧张的一件事是它看起来很容易伪造.什么阻止我将同事姓名/电子邮件放在user.name和user.email的git global config中?当使用像gitosis/gitolite(定义用户)或github(我假设使用像gitosis/gitolite这样的东西)之类的东西时,有什么可以看到谁真正做出了提交吗?
我已经尝试了几天让我的gitolite与jenkins合作,所以我可以从服务器托管并与Jenkins一起工作(他们在同一个服务器上).
我有gitolite工作,但我想我有ssh的问题.我在聊天中得到了一些帮助,并为jenkins/.ssh添加了私钥.
我有一个用户"git"主持gitolite,我有一个用户"gitolite"和一个"jenkins"用户.我可以使用git clone git@e-ject.se克隆一个repo:Matrix
但我不能在詹金斯中使用它.当我尝试构建时,我得到了这个.
Checkout:workspace / /var/lib/jenkins/jobs/Matrix/workspace -
hudson.remoting.LocalChannel@dbb335
Using strategy: Default
Checkout:workspace / /var/lib/jenkins/jobs/Matrix/workspace -
hudson.remoting.LocalChannel@dbb335
Cloning the remote Git repository
Cloning repository origin
ERROR: Error cloning remote repo 'origin' : Could not clone git@e-ject.se:Matrix
ERROR: Cause: Error performing command: git clone --progress -o origin git@e-ject.se:Matrix /var/lib/jenkins/jobs/Matrix/workspace
Command "git clone --progress -o origin git@e-ject.se:Matrix
/var/lib/jenkins/jobs/Matrix/workspace" returned status code 128: Cloning into /var/lib/jenkins/jobs/Matrix/workspace...
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: The …
Run Code Online (Sandbox Code Playgroud) 我们使用gitolite来管理我们的存储库,我们的一个heroku项目有git子模块.有没有办法获得Heroku的身份验证公钥?
谢谢,大卫
我想从一个新工作站向我的gitolite服务器添加一个ssh密钥.我无法通过gitosis-admin来实现,因为我无法克隆它,而且我无法访问我以前的笔记本电脑包含我安装了gitolite的ssh-key.
如何在没有克隆gitosis-admin的情况下将我的新密钥添加到gitosis-admin/keydir?
谢谢
我正在尝试将gitweb与一组使用gitolite管理的存储库一起使用.我们可以通过ssh成功克隆/推送/拉取没有问题.当我尝试查看索引页面时,我在apache日志中收到以下错误:
fatal: missing object 0000000000000000000000000000000000000000 for refs/heads/master, referer: http://gitwebbox/gitweb/?p=mlp2.git;a=summary
我运行git fsck并没有发现任何问题.master的ref指向对象树中存在的哈希.
任何人都可以帮我弄清楚出了什么问题吗?谢谢!
我想创建一个消息,只要有人使用gitolite克隆git存储库就会弹出.我想提醒他们克隆钩子repo并激活包含的钩子.我怎样才能做到这一点?
我很难解决克隆gitolite-admin存储库的问题.我已经关注了这个http://sitaramc.github.com/gitolite/install.html#migr,它完美无缺.
我跑ssh-keygen -t rsa
和scp ~/.ssh/id_rsa.pub morten@ubuntu-server:/tmp/morten.pub
服务器上的authorized_keys看起来像这样:
# gitolite start
command="/home/morten/gitolite/src/gitolite-shell morten",no-port-forwarding,no-X11-forwarding,no-agent-forward$
# gitolite end
Run Code Online (Sandbox Code Playgroud)
哪个AFAIK没问题.
当我git clone morten@ubuntu-server:gitolite-admin
在我的客户端上运行时,我得到了
fatal: 'gitolite-admin' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
我不知道我错过了什么!
我一直在努力使甘露聚糖工作。我使用了打包方法,并且能够与第一个用户一起对服务器进行第一次“ git push”。此后,如果我添加密钥并尝试再次推送内容,则会收到一条错误消息,提示“ W为gitolite管理员拒绝访问mike”(请注意,该用户使用的是gitolite用户,而不是我的用户名)。我猜这是因为我要在.bash_profile中为两个用户添加私钥。(我正在使用msysgit)...
有任何想法吗?
非常感谢!
我刚刚安装了gitolite3,默认情况下会创建其“主目录” / var / lib / gitolite3
我希望该文件夹位于/ home / gitolite3之类的其他位置。
我如何将其移到那里?
我在网上找到的所有引用都绕过REPO_BASE变量,该变量无处可寻。
有任何想法吗?