我遇到了一个非常奇怪的问题,试图将现有的本地存储库放到我的服务器上进行共享。我按照本教程:
http://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server
在本地,我在Putty上使用Git Extensions(在Windows上),将远程指定为git@my_server.com
。
然而,当我尝试推送我的本地存储库时,我得到:
error: insufficient permission for adding an object to repository database ./objects
我以用户" git"登录服务器,检查了存储库是否存在问题。
所有文件权限都是正确的(属于git
),我可以创建新文件。
试着找出问题所在,我查看了系统验证日志:
Feb 11 07:35:45 MY_SERVER sshd[22334]: pam_unix(sshd:session): session opened for user my_user by (uid=0)
Feb 11 07:35:47 MY_SERVER sshd[22334]: pam_unix(sshd:session): session closed for user my_user
因此,看起来Git Extensions正在尝试使用其他用户(my_user
)登录系统,然后在权限方面遇到一些问题。当我为git
生成新的私钥并使用此密钥进行身份验证时,这甚至是持久的,因此它甚至不能记录为my_user
。
现在我经常使用my_user
和Putty,但不知道它最终会被Git Extensions使用。
此外,git
和my_user
位于同一个组中,并且存储库在组成员(git config core.sharedRepository
)之间共享,因此这甚至不应成为问题。
我也不明白git如何以my_user
的身份登录。我在开头使用了my_users
私钥,但随后将其替换掉了。所以Git Extensions必须将旧设置存储在某处。
我试图取消设置凭证助手(Win Store"但这并没有改变任何东西。
如果你知道出了什么问题,请告诉我。
答案 0 :(得分:-1)
我可以解决这个问题!这也发生在我身上:
remote: error: insufficient permission for adding an object to repository database ./objects
remote: fatal: failed to write object
我已经读到这是因为操作系统的权限系统受到限制。
如果我没记错的话,必须使用' chmod'
更改文件权限这个链接(Git Push Error: insufficient permission for adding an object to repository database)为我节省了很多时间!它涵盖了更多/其他细节。
古德勒克。
-Joey