Как мне сбросить файл с git на WSL после разрешений - PullRequest
0 голосов
/ 31 января 2019

[РЕДАКТИРОВАТЬ]: это было решено, см. Ниже

У меня есть папка скриптов, в которой у меня есть скрипт 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. проверить временную ветвь, полный сброс
    • 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 как обычно. ¯\_(ツ)_/¯

...