【问题标题】:Changing the permission of file already added to git更改已添加到 git 的文件的权限
【发布时间】:2015-05-09 14:14:17
【问题描述】:

最近我遇到了 git 中文件的权限相关问题。实际上,我的一位团队成员在提交文件时没有注意到组级别没有写权限。

考虑一个文件 - file.txt。她提交并推送了文件,而她机器上的权限是-644 (rw-r--r--)。当我尝试执行git pull 时,它返回了该文件的以下错误:

$ git pull
error: unable to create file file.txt

所以我确实尝试了几件事但没有成功:

  • 首先我更改了团队成员计算机上的文件权限,然后再次推送。但这没有帮助。
  • 然后我删除了该文件,并在获得适当权限后重新创建了它。然后将新文件添加到 git。同样,这没有用。

最后我不得不求助于sudo

$ sudo git pull

这确实奏效了。但是我仍然不知道如何在不使用sudo 的情况下解决这个问题?

【问题讨论】:

    标签: git ubuntu permissions


    【解决方案1】:

    644 和 755 是 only tow permissions recorded by Git

    sudo 通常不应该使用,除非你在一个公共服务器中(由多个用户访问),其中本地 repo 不是你创建的。

    如果是你的 repo,试试:

    sudo chown -R <yourUser> .
    

    然后查看git pull 上的错误是否仍然存在。

    【讨论】:

    • 我正在尝试在我的机器上重新生成问题,创建本地和远程仓库。我推送了一个所有者为root644 的文件作为许可,并将其拉到不同的本地存储库中。令人惊讶的是,它创建了文件.. :( 并将所有者更改为我,并将权限更改为 664。
    • @RohitJain 这是预期的。 644 是一个非常好的权限。该 repo 是一个本地 rpeo,操作将作为操作该本地 repo 的本地用户完成。
    • 那么,如果我将该文件的所有者从团队成员的计算机更改为她的用户,而不是 root,它会起作用吗?
    • @RohitJain 是的,对于用户拥有的本地存储库,使用 root 通常不是一个好习惯。
    最近更新 更多