Articles of git

Sudoersconfiguration为git提交后脚本允许参数

我们有一个需要用Git和Trac运行的git post-commit脚本,当有人提交一个被调用的钩子时,会运行这个命令: trac-admin /path/to/trac changeset added "reponame" $REV $ REV是dynamic的,取决于推送的版本。 问题是这个命令要求提交用户对trac数据库有写权限。 我们有很多用户提交,他们都在一个名为“git”的Linux组中,我可以在trac数据库文件(SQLite)上给rw这个组,然后它可以工作,然后在“git”组中的任何人都可以删除数据库。 它目前由www-data,www-data所有。 我添加了一个这样的sudoconfiguration行: %git ALL=(www-data) NOPASSWD: /usr/local/bin/trac-admin 这工作,它允许脚本工作,但是现在他们有trac-admin所有的选项,我想限制这个命令的访问,包括/path/到/ trac的参数,并改变设置添加。 我尝试添加一个Cmnd别名与/ usr / local / bin / trac-admin / path / to / trac changeset添加了“reponame”,但它不起作用,因为添加的$ REV正在打破它,而且不能dynamic添加到的/ etc / sudoers中。 有没有办法在Cmnd Alias中包含通配符来允许它在sudoers中工作?

将GitHub存储库拉到/ var / www

我有一个私人的GitHub回购,我想设置我的testing服务器(LAMP)自动拉/取主分支中的文件,并把它们放在我的网站根(/ var / www)。 难道不可能创build一个shell脚本来cd到/ var / www然后运行git pull origin master? 我可以使用CRON工作吗?

Gitweb给404没有find项目

我无法用gitolite设置gitweb。 Gitolite工作正常,但gitweb不断给我一个404 – 找不到项目。 奇怪的是,当我以下面的方式运行cgi脚本作为apache用户似乎正常工作。 # su apache /var/www/git/gitweb.cgi –shell=/bin/sh …. <tr class="dark"> <td><a class="list" href="?p=testing.git;a=summary">testing.git</a></td> <td><a class="list" title="Test repo 3" href="?p=testing.git;a=summary">Test repo 3</a></td> … Gitweb应该有读取权限,并且设置了$REPO_UMASK = 0022; 在gitweb.conf中,并将Apache添加到gitolite组中#usermod # usermod -a -G gitolite apache # ls -l gitolite/ total 8 -rw-r–r–. 1 gitolite gitolite 12 Sep 28 08:47 projects.list drwxr-x—. 4 gitolite gitolite 4096 […]

如何在debian VPS(openvz + direct admin)上安装git服务器?

在debian VPS(openvz + direct admin)上安装git服务器有哪些风险和预防措施? 如何在这样的环境下正确安装git服务器? 我想用git服务器(比如http://git-scm.com/ )集中pipe理源代码版本控制。

使用裸共享回购的Linux上的git的权限错误

我有一个光秃的中央回购有这个选项打开: git config core.sharedRepository true 出于某种原因,CentOS机器上的其他用户从中央仓库中拉出/推入时,总是遇到许可错误,当他们推到某个已经被推送的分支时。 我查看了目标目录,并意识到谁先推送他们的用户名设置为所有者和组。 我已经设置好了,所有的用户都属于“开发者”组,然后chgrp -R裸露的回购是属于“开发者”的集体所有权,但是这还没有解决问题。 还有其他build议吗? 更多信息: 这是我推时发生的事情: [dave@localhost wd]$ git push Counting objects: 5, done. Compressing objects: 100% (2/2), done. error: insufficient permission for adding an object to repository database ./objects fatal: failed to write object error: pack-objects died of signal 13 error: failed to push some refs to '/gitrepos/repo.git' […]

与正确的所有者/组创build链接

我有一个通过SSH访问的git守护进程。 所有的软件仓库都在/ srv / git中。 我有一些其他项目保存在exfat磁盘上,所以我想创build一个从该磁盘到/ srv / git的符号链接。 例如,我有/mnt/Medias/Projects/Defi\ H.git所以我简单地做: cd /srv/git sudo ln -s /mnt/Medias/Projects/Defi\ H.git 但是该文件是以root身份创build的:777。 要限制对存储库的访问,我想更改该文件的posix权限。 如果第一次尝试: sudo chmod 755 Defi\ H.git chmod: changing permissions of `Defi H.git': Function not implemented 我发现这是因为链接指向存储在exfat磁盘上的文件夹。 同样,这也失败了: sudo chown git:defih Defi\ H.git chown: changing ownership of `Defi H.git': Function not implemented 所以我想直接创build链接作为合适的用户: sudo -u git […]

设置Gitosis,在哪里创build回购?

我试图在CentOS 6.2上设置Gitosis,但是有一些疑问/问题。 我在 这里和这里阅读这个文档,但是我不清楚在哪里configuration存储库的创build地点。 我的服务器有一个分区/数据,我创build一个目录并调用/ gitrepos。 我想要在该目录下创build所有的回购。 默认情况下,如果我运行该命令: gitosis-init < /home/reynierpm/reynierpm.pub 我明白了 在/root/repositories/gitosis-admin.git/中初始化了空的Git仓库 重新初始化/root/repositories/gitosis-admin.git/中的现有Git存储库 我想要在/ data / gitrepos下创build这个仓库,有什么帮助吗? 提前致谢

在本地Macnetworking上设置中央git回购

我们是一个由三人组成的团队,他们都在同一个内部networking上的本地机器上工作。 我们都将在Github上托pipe的同一个Git仓库的本地工作副本上工作。 我们在这里有一个内部登台机器(dev.internal),我正在寻找一种方法让我们能够推送到这台机器。 在开发周期的每个里程碑。 实质上,我真正希望我们能够做的就是将dev.internal机器添加为远程机器,并在我们准备就绪时将其推向此位置。 请有人指出我正确的方向来设置?

CentOs 6.3不能安装Git

我正在尝试使用CentOs 6.3 precreated模板在OpenVZ容器上安装git。 当我尝试命令行 yum install git 我收到消息: Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: www.cubiculestudio.com * epel: mirror.csclub.uwaterloo.ca * extras: www.cubiculestudio.com * rpmforge: mirror.us.leaseweb.net * updates: www.cubiculestudio.com Setting up Install Process No package git available. Error: Nothing to do 据我所知,git软件包应该位于centos6基础库中: http ://pkgs.org/centos-6-rhel-6/centos-rhel-x86_64/git-1.7.1-2.el6_0.1.x86_64 .rpm.html 但它没有find它,我甚至有EPEL和RPMForge回购启用,但仍然无法findGIT包。 yum repolist Loaded plugins: fastestmirror Loading […]

GitHub推送到AWS Elastic Beanstalk

我正在使用GitHub进行代码pipe理。 我正在使用Amazon AWS Elastic Beanstalk作为服务器。 亚马逊宣布可以使用Git将代码推送到应用程序服务器。 但是,要做到这一点,我不得不放手GitHub,因为它们实质上是replace了git服务器。 有没有什么方法可以让两个世界的最好? 我不一定需要每次推送时都要“部署”,但我希望将其作为“版本”上传,然后随时部署我想要的版本。