删除.git / index.lock':权限被拒绝

时间:2013-01-02 18:32:56

标签: macos git

我完全不知道为什么我的git完全锁定了我。我有一台笔记本电脑,我在工作和家里使用。对于这两个帐户,我广泛使用git,两者都位于不同的路径中。今天我上班了,我什么都做不了,我看到的只有:

/Applications/MAMP/htdocs/my_site/.git/index.lock': Permission denied

对于我所关心的所有我可以删除我所在的分支。我已经尝试删除分支,检出任何其他分支,删除index.lock文件(如网站上的其他用户所建议)。我只打开终端窗口,没有其他可能的程序使用git(据我所知,在活动窗口中没有任何明显的意义)。我已经将计算机直接重新启动到我的工作帐户中,但仍然没有运气。如何删除此锁?

8 个答案:

答案 0 :(得分:29)

我有同样的问题想要将我的更改提交给git,并以这种方式解决:

  • 我需要更改.git文件夹及其内容的组:

    sudo chown -R:.git

  • 需要更改此文件夹的权限:

    sudo chmod -R 775 .git

答案 1 :(得分:15)

检查哪个用户拥有git lock:

ls -la /Applications/MAMP/htdocs/my_site/.git/index.lock

然后您可以使用sudo将其删除。

答案 2 :(得分:6)

更新xcode后,您可能会被要求同意新许可。

  

git init

     

同意Xcode / iOS许可证需要管理员权限,请通过sudo以root身份重新运行。

当你这样做时

  

sudo git init

您将获得root用户.git目录

  

drwxr-xr-x 10 root XXXX 340 25 Sep 12:40 .git

如果您调用其他创建文件的git命令,也会为root用户创建这些文件。

如果您还不需要,请更改权限或删除.git。

<强> =&GT;不要用sudo打电话给git! 如果要求您在空目录中调用git

  

mkdir foo

     

cd foo

     

sudo git init

答案 3 :(得分:3)

我在运行以下命令时遇到了这个问题 SELECT B2C_BUY_LOG.PG_CHANNEL AS Payment_Channel, COMM_CODE.CODE_NAME AS Payment_Name, COUNT(B2C_BUY_LOG.PAY_ID) AS Total_Transaction FROM B2C_BUY_LOG left outer JOIN B2C_BUY_HIST ON B2C_BUY_LOG.PAY_ID = B2C_BUY_HIST.PAY_ID left outer INNER JOIN COMM_CODE ON B2C_BUY_LOG.PG_CHANNEL = COMM_CODE.CODE WHERE B2C_BUY_LOG.RET_CODE = 1 AND B2C_BUY_LOG.PAY_ID LIKE '190220%' AND B2C_BUY_LOG.CODE IN('PC01', 'PC02', 'PC03', 'PC04', 'PC05', 'PC06', 'PC07', 'PC08', 'PC09') GROUP BY Payment_Channel, Payment_Name;

请注意,缺少第二个sudo。运行以下命令可以解决此问题: sudo git fetch && git checkout<branch>

在运行sudo时,您不必更改.git目录的所有者。

答案 4 :(得分:2)

我在尝试更新我的仓库的子模块时遇到了同样的问题:

$ git submodule update
fatal: Unable to create '.../.git/modules/deps/luajit/index.lock': 
   Permission denied
Unable to checkout '04dc64b558025e76a820f89a8e41840bf8269f32' in
   submodule path 'deps/luajit'

问题似乎是子模块属于不同的用户,所以我将所有权归还给我:

cd .git/modules/
chown -R user.group *

答案 5 :(得分:1)

将/.git文件夹的权限从root更改为当前用户

sudo chown username .git

答案 6 :(得分:0)

我的计算机系统是Windows。当我在此路径中打开WSL远程vscode和本地vscode时,系统显示此错误。我关闭了远程vscode WSL解决了这个问题。

答案 7 :(得分:-1)

检查权限肯定是这样的。使用错误的帐户登录时遇到此错误。所以,从我个人的经验回答:

“请务必使用正确的帐户登录”。