【问题标题】:Git commit problem: Unable to append to .git/Git 提交问题:无法附加到 .git/
【发布时间】:2011-10-05 06:11:37
【问题描述】:

使用 git 时我无法在项目中提交更改。

这是我的终端:

tomas@tomas-laptop:~/menu_operations$ git commit -m "initial commit"
error: Unable to append to .git/logs/refs/heads/7.x-1.x: Permission denied
fatal: cannot update HEAD ref

menu_operations 是我的项目名称。

我不知道我必须允许什么权限。 有人可以帮忙吗?

【问题讨论】:

    标签: git permissions github


    【解决方案1】:

    检查 .git/logs/refs/heads/ 上的用户和权限,也许你以 root 身份运行。

    【讨论】:

      【解决方案2】:

      检查 .git/logs/refs/heads/ 上的用户和权限,也许你以 root 身份运行。

      说明:当您以 root (sudo?) 运行某些 git 命令时,创建的任何新文件/目录都将归 root 所有,默认情况下[1] 其他用户将没有这些文件/目录的写入权限。

      稍后,当您使用该存储库时,事情可能似乎可以工作,直到您需要写入实际上由root,即 root所有。

      这应该可以解决它,至少在 linux 上:

       sudo chown -Rc $UID .git/
      

      它还会向您显示它更改了所有者的所有文件。

      [1]至少在合理的设置中

      【讨论】:

      • 谢谢你们。你是对的。命令 sudo chown 确实有帮助,现在可以了。托马斯·泰歇尔
      • Mac 用户:sudo chown -R $UID .git/.
      • @manakor 但是它当然不会“也向您显示它更改所有者的任何文件”。您可能可以通过find . -not -uid $UID -ls -exec chown $UID {} + 获得。
      • 感谢它对我有用,但我必须将 $UID 更改为 id -u *your_username* 返回的值。
      【解决方案3】:

      只是想为那些使用 Capistrano 部署的人补充一下,您应该在此处使用 .git/ 目录

      /var/www/rails/production/shared/git_cache/.git
      

      /var/www/rails/production/current/.git
      

      这假设您正在使用这些给定的目录并且您正在推动生产...但它应该让您朝着正确的方向前进。

      【讨论】:

        【解决方案4】:

        chown -R $(whoami) /usr/local.git 应该这样做。

        【讨论】:

          【解决方案5】:

          Linux 命令:

          • sudo chown -Rc $UID .git/
          • id -u {你的用户名}

          结果: 将“.git/packed-refs”的所有权从 root 更改为 1000

          将“.git/logs/HEAD”的所有权从 root 更改为 1000

          将“.git/logs/refs/heads/master”的所有权从 root 更改为 1000

          将“.git/logs/refs/remotes/origin/HEAD”的所有权从 root 更改为 1000

          将“.git/logs/refs/remotes/origin/master”的所有权从 root 更改为 1000

          将“.git/objects/pack/pack-b905d78889aea64ca69a61c0efaa76ba95b08786.idx”的所有权从 root 更改为 1000

          将“.git/objects/pack/pack-b905d78889aea64ca69a61c0efaa76ba95b08786.pack”的所有权从 root 更改为 1000

          将“.git/objects/info/packs”的所有权从 root 更改为 1000

          将“.git/info/refs”的所有权从 root 更改为 1000

          【讨论】:

            【解决方案6】:

            使用

            sudo chown -R yourremailid .git/

            【讨论】:

              猜你喜欢
              • 2010-12-17
              • 2017-09-04
              • 2021-12-22
              • 1970-01-01
              • 2022-10-20
              • 1970-01-01
              • 2017-09-02
              • 2015-01-13
              • 1970-01-01
              相关资源
              最近更新 更多