Git rebase -i не в терминале / работает только с sudo

Я просто хочу отредактировать некоторые коммиты с помощью git rebase -i HEAD~2внутри текущей ветки. Я использую Ubuntu 10.10, и мне пришлось сначала установить gvim, чтобы команда заработала. После этого команда открывает окно gvim с обычным содержимым перебазирования. Но когда я хочу сохранить файл, gvim говорит

".git/rebase-merge/git-rebase-todo" E212

[Не удается открыть файл для записи]

Также команда перебазирования завершается сразу после запуска (с Успешно перебазированы и обновлены refs/heads/master. ).

  • При выполнении той же команды с sudoперебазирование работает, но потом оказывается, что файлы принадлежат пользователю root, и у меня больше нет прав на запись.

  • В моей системе ArchLinux gvim открывается прямо в терминале, где я запускаю git rebase -i, и все работает.

  • Пробовал разные терминалы (терминал Gnome, LXTerminal, XTerm) - всегда одна и та же проблема

В чем здесь проблема и как ее решить? Это должно работать без sudo.

Редактировать 1

  • Некоторые файлы в .git/... принадлежат пользователю root и доступны только для чтения. Все каталоги и файлы первого уровня .git/принадлежат мне. С помощью ls -l --recursive .git/ | grep rootЯ пытался определить, какие файлы есть, но вывод не дает пути к файлам...
  • Должны ли все файлы в .git/принадлежать пользователю? Может ли это быть причиной проблемы?

РЕДАКТИРОВАТЬ 2

  • Даже после смены владельца и прав на запись всех файлов внутри .gitпользователю с sudo chown -R user:user .git/и chmod u+w -R .git/( ls -lтеперь показывает что-то вроде -rw-r--r-- 1 user user) проблема остается такой же.
6
задан user905686 21 March 2012 в 14:13
поделиться