Как сбросить файл с помощью git на WSL после разрешений

[EDIT]: проблема решена, см. ниже

У меня есть папка scripts, в которой у меня есть скрипт bash под контролем версий git.

ls -al дает

drwxrwxrwx 1 me me  512 Jan 21 16:06 .
drwxrwxrwx 1 me me  512 Jan 23 05:34 ..
-rwxrwxrwx 0 me me 1427 Jan 31 08:08 update_db.sh

Я хочу отменить изменения, поэтому, естественно, я делаю git checkout -- scripts/. Но я получаю следующую ошибку:

error: unable to unlink old 'scripts/update_db.sh': No such file or directory


Итак, я попробовал следующее:

  1. check out temporary branch, hard reset
    • git checkout -b tmp
    • git reset --hard master

в результате чего

error: unable to unlink old 'scripts/update_db.sh': No such file or directory
fatal: Could not reset index file to revision 'master'.

ОК, поэтому я ищу это и нахожу это сообщение SO

Это заставляет меня попытаться исправить разрешения (хотя похоже, что у меня есть правильные разрешения как для файла, так и для его родительского каталога [см. выше]).

Я запустил sudo chmod -R ug+w scripts; в каталоге и попытался повторить вышеописанное с тем же результатом...

Я тоже ничего не могу сделать из проводника Windows (говоря, что у меня нет разрешений). Я также должен отметить, что я бежал rm scripts/update_db.sh

rm: cannot remove 'scripts/update_db.sh': No such file or directory

Любая помощь будет принята с благодарностью!


Решение Я не думал, что это как-то связано с терминалом, который я использовал, но похоже, что проблема могла быть в нем. Я использовал
open-wsl и, похоже, мне не были предоставлены правильные разрешения для пользователь Ubuntu.

Поскольку разрешения определяются пользователем, запускающим процесс, я предполагаю, что open-wsl каким-то образом не фактически запускался как пользователь root и поэтому не мог удалить. И каким-то образом я предполагаю, что файл был создан моим пользователем Linux, который был запущен с правами root, а это означает, что мой пользователь open-wsl и мой пользователь Windows не смогут его изменить.

В любом случае, это всего лишь моя теория, я до сих пор не совсем уверен, что здесь произошло, но это было решено путем запуска оболочки Ubuntu из меню «Пуск» Windows от имени пользователя root, перехода в каталог и rm, как обычно.¯\_(ツ)_/¯


person codelemur    schedule 31.01.2019    source источник
comment
Где rm scripts/update_db.sh терпит неудачу, less scripts/update_db.sh удается без предупреждений?   -  person joanis    schedule 31.01.2019
comment
@joanis да, это удается без предупреждений.   -  person codelemur    schedule 01.02.2019