[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
Итак, я попробовал следующее:
- 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
, как обычно.¯\_(ツ)_/¯
rm scripts/update_db.sh
терпит неудачу,less scripts/update_db.sh
удается без предупреждений? - person joanis   schedule 31.01.2019