- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试推送到共享的 git 远程服务器时,出现以下错误:将对象添加到存储库数据库的权限不足
然后我在此处阅读了有关修复的信息:Fix这适用于下一次推送,因为所有文件都属于正确的组,但下次有人推送更改时,它会在对象文件夹中创建一个新项目,并将其默认组作为组。我唯一能想到的就是为他们 checkin 的项目更改所有开发人员的默认组,但这似乎是一个 hack。有任何想法吗?谢谢。
最佳答案
在确定并修复根本原因(见下文)后,您需要修复权限:
cd /path/to/repo/.git
sudo chgrp -R groupname .
sudo chmod -R g+rwX .
sudo find . -type d -exec chmod g+s '{}' +
请注意,如果您希望每个人都能够修改存储库,则不需要 chgrp
并且您需要将 chmod 更改为 sudo chmod -R a+rwX 。
如果不解决根本原因,错误将不断出现,您将不得不一遍又一遍地重新运行上述命令。
错误可能是由以下原因之一引起的:
存储库未配置为共享存储库(请参阅 git help config
中的 core.sharedRepository
)。如果输出:
git config core.sharedRepository
不是 group
或 true
或 1
或一些掩码,尝试运行:
git config core.sharedRepository group
然后重新运行递归 chmod
和 chgrp
(请参阅上面的“修复权限”)。
操作系统不会将目录上的 setgid 位解释为“所有新文件和子目录都应继承组所有者”。
当 core.sharedRepository
为 true
或 group
时,Git 依赖于 GNU 操作系统(例如,每个 Linux 发行版)的特性来确保新创建的子目录属于正确的组(所有存储库用户所在的组)。此功能记录在 GNU coreutils documentation 中:
... [If] a directory's set-group-ID bit is set, newly created subfiles inherit the same group as the directory, and newly created subdirectories inherit the set-group-ID bit of the parent directory. ... [This mechanism lets] users share files more easily, by lessening the need to use
chmod
orchown
to share new files.
然而,并非所有操作系统都具有此功能(NetBSD 就是一个例子)。对于这些操作系统,您应该确保所有 Git 用户都具有相同的默认组。或者,您可以通过运行 git config core.sharedRepository world
使存储库全局可写(但要小心——这不太安全)。
文件系统不支持 setgid 位(例如 FAT)。 ext2、ext3、ext4 都支持 setgid 位。据我所知,不支持 setgid 位的文件系统也不支持组所有权的概念,因此所有文件和目录无论如何都将归同一组所有(哪个组是挂载选项)。在这种情况下,请确保所有 Git 用户都在拥有文件系统中所有文件的组中。
并非所有 Git 用户都在拥有存储库目录的同一组中。确保目录的组所有者正确并且所有用户都在该组中。
关于Git 推送错误 : insufficient permission for adding an object to repository database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13891016/
在过去的几个月里,我一直在使用 Bzr 对我的项目进行版本控制。我是唯一的开发人员,目前我只有一个本地项目目录中的所有内容,我提交并同步到 DriveHQ。 我现在想到了一些可能会打破这条主线的大规模
我在一个多模块项目中使用 Maven 3.2.3。我想生成一个 checkstyle 和 findbugs 报告,所以我配置了以下内容:
我注意到 Repository 通常通过以下任一方式实现: 方法一 void Add(object obj); void Remove(object obj); object GetBy(int id
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 5年前关闭。 Improve thi
这是我的设置的详细信息: Gitlab 版本:5.2操作系统:Centos 6.3我在创建新项目 (/projects/new) 时导入现有存储库。 创建了一个新的 EMPTY 项目,但是没有导入存储
我的文件夹结构如下: repo1 | |---file1 |---fold1 | |---file2 |---repo2 | | |---file3 假设我有两
假设我有一个 TeacherRepository,需要根据下面的代码使用 CourseRepository。 Teacher 和 Course 形成多对多的关系。教师和类(class)不形成聚合。您会
我要同样的 repositories我在 buildscript.repositories 中指定的阻止与依赖项相同的存储库 repositories堵塞。请看我的例子: 正常 buidldscrip
是否使用 @EnableJpaRepositories 或 jpa:repositories(在 xml 上)让开发人员不要使用 Spring 的 @Repository 标签?当我查看 Spring
我是 git 和 Github 的新手。我已经了解了很多术语(推送、 pull 、提交、分支等),但我将主要使用通俗的说法来解释我最初的期望。 我假设过程是: 1.) Create a git rep
安装 Nexus Repository Manager OSS 3 后,我没有看到用于通过网页上传工件的选项Artifact Upload。 在 Nexus Repository Manager OS
CMS 和 DMS 有什么区别?两者都存储日期,可以访问数据,它们有什么不同?可以使用 apache Jack Rabbit 代替 Alfresco 吗? 最佳答案 我会根据管理数据的可变性来区分这两
在我的earlier question我问的是如何为使用 EF 等 ORM 框架构建的大型应用程序实现存储库/工作单元模式。 我现在无法解决的一个后续问题是将包含业务逻辑的代码放在哪里,但仍然足够低级
我正在尝试为 nuget git 存储库(我刚刚从中克隆)创建 pull 请求。我已经进行了本地提交。 但是当我尝试创建 pull 请求时,出现以下错误: Could not find any rel
我已经看到了下面的问题。 git diff between cloned and original remote repository 我的问题是如何在 SourceTree 中看到这个差异结果(而不
我在通过 Subversion (SVN) 中的 checkin 自动在 Review Board 中创建新的评论条目时遇到了困难。我创建了一个提交后 Hook ,当手动运行时会出现以下异常: Fai
我在尝试集成 Spring Data 时遇到此错误。完整的堆栈跟踪是 nested exception is org.xml.sax.SAXParseException; systemId: http
通知:https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-repository-email.html 触发器:https://
我正在学习 Laravel 中的存储库设计模式,我正在使用 https://github.com/andersao/l5-repository去做这件事。 但是在我将文件夹 prettus 复制/粘贴
我最近开始了一个使用现有数据库(Oracle)和 MVC 4 的项目。已经进行了很多编码..但是代码中没有“策略”..只有 DB -> ORM -> Controller。因此,我正在尝试为开发添加一
我是一名优秀的程序员,十分优秀!