我完全不知道为什么我的git完全锁定了我。我有一台笔记本电脑,我在工作和家里使用。对于这两个帐户,我广泛使用git,两者都位于不同的路径中。今天我上班了,我什么都做不了,我看到的只有:
/Applications/MAMP/htdocs/my_site/.git/index.lock': Permission denied
对于我所关心的所有我可以删除我所在的分支。我已经尝试删除分支,检出任何其他分支,删除index.lock文件(如网站上的其他用户所建议)。我只打开终端窗口,没有其他可能的程序使用git(据我所知,在活动窗口中没有任何明显的意义)。我已经将计算机直接重新启动到我的工作帐户中,但仍然没有运气。如何删除此锁?
答案 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)
检查权限肯定是这样的。使用错误的帐户登录时遇到此错误。所以,从我个人的经验回答:
“请务必使用正确的帐户登录”。