Как сделать файлы читаемыми и записываемыми в git на Windows? - PullRequest
0 голосов
/ 04 января 2019

Я работал с git bash в Windows.Я отредактировал некоторые файлы, зафиксировал их и отправил в ветку, а затем переключился обратно на master, чтобы вытащить его, а затем попытался переключиться обратно на свою ветку, чтобы объединить master с ней.Git сказал мне, что у меня нет разрешений на получение группы файлов, и отказался извлекать ветку.

Единственное, что я могу найти при изменении прав доступа к файлам в git в Windows, - это куча сообщений о том, какчтобы перевернуть исполняемый бит и сказать, что я могу видеть разрешения, используя git ls-tree branch и git ls-files branch.Используя первый, я вижу, что папка, содержащая файлы, имеет разрешения 040000 для ветви, на которую я хочу переключиться обратно.Очевидно, что переключение исполняемого бита не сделает эту папку доступной для чтения и записи.Как мне изменить эти разрешения обратно?

Редактировать: После осмотра, я в замешательстве.Все папки имеют те же разрешения, что и выше (040000), но я могу перейти в них и просмотреть файлы там.Проблемы с папками, которые были добавлены только в новую ветку.У меня, кажется, есть копии их в моем извлеченном репо, так или иначе, но к ним нельзя получить доступ, ни через git bash, ни через Windows Explorer.

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Возможно, процесс Windows сохранял активный дескриптор этих папок, препятствуя успешному завершению проверки git: проверка должна была удалить эти папки при переключении обратно на вашу ветку.

Это могло бы объяснить оригиналсообщение об ошибке без фактического разрешения (chmod).

0 голосов
/ 04 января 2019

Что ж, в данном конкретном случае мне удалось решить эту проблему, удалив папку, содержащую одну из поврежденных папок, в проводнике Windows.После того, как я это сделал, я попытался удалить другую папку, но щелчок по ней заставил Windows сказать мне, что ее больше не существует (вместо этого я не мог получить к ней доступ, о чем она говорила раньше).Эти две папки не были связаны друг с другом вообще.В любом случае, я подтвердил, что в git bash ни одна папка не существует, и затем смог успешно проверить ветку.Я не уверен, что здесь произошло, и все равно хотел бы объяснения, если у кого-то есть такое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...