41

我完全不知道为什么我的 git 完全将我拒之门外。我有一台笔记本电脑,可以在工作和在家时使用。对于这两个帐户,我都广泛使用 git,并且它们都位于不同的路径中。今天我上班了,我什么都做不了,我看到的是:

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

我只关心我所在的分支可以被删除。我试过删除分支,检查任何其他分支,删除 index.lock 文件(如网站上其他用户的建议)。我只打开了终端窗口,没有其他可能使用 git 的程序(据我所知,活动窗口中没有任何明显的内容)。我已将计算机直接重新启动到我的工作帐户中,但仍然没有运气。我怎样才能解除这个锁?

4

8 回答 8

55

我有完全相同的问题想将我的更改提交给 git,并以这种方式解决了它:

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

    sudo chown -R <owner>:<group> .git

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

    sudo chmod -R 775 .git

于 2015-01-26T21:45:30.720 回答
26

检查哪个用户拥有 git lock:

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

然后你可以用sudo它来删除它。

于 2013-01-02T18:37:46.013 回答
9

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

混帐初始化

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

当你这样做时

须藤 git 初始化

你会得到一个 root 用户 .git 目录

drwxr-xr-x 10 根 XXXX 340 9 月 25 日 12:40 .git

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

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

=> 永远不要用 sudo 调用 git !!!如果你被要求只在一个空目录上调用 git

mkdir foo

光盘

须藤 git 初始化

于 2014-11-27T11:54:43.817 回答
7

我在运行以下命令时遇到了这个问题 sudo git fetch && git checkout<branch>

请注意,第二个 sudo 丢失了。运行以下解决了这个问题: sudo git fetch && sudo git checkout<branch>

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

于 2019-02-20T10:01:53.340 回答
3

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

$ 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 *
于 2015-07-13T12:57:17.173 回答
2

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

于 2019-09-18T10:33:51.387 回答
1

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

sudo chown username .git
于 2020-11-06T15:51:27.693 回答
1

检查许可肯定是方法。使用错误的帐户登录时遇到此错误。所以,根据我的个人经验,答案是:

“确保您使用正确的帐户登录”。

于 2018-04-04T19:48:47.770 回答