[РЕДАКТИРОВАТЬ]: это было решено, см. Ниже
У меня есть папка скриптов, в которой у меня есть скрипт 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
Итак, я попробовал следующее:
- проверить временную ветвь, полный сброс
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
как обычно. ¯\_(ツ)_/¯