Подтвердить что ты не робот

Не может добавить все файлы в git из-за разрешений

Я хочу добавить все файлы в текущем каталоге в git:

git add .
error: open(".mysql_history"): Permission denied
fatal: unable to index file .mysql_history

Это хорошо. Этот файл находится в этом каталоге и принадлежит root. Я хочу добавить все остальные файлы. Есть ли способ сделать это без необходимости вручную добавлять каждый файл вручную?

Я знаю, что я могу добавить файл для исключения или .gitignore, но я бы хотел, чтобы он просто игнорировал вещи на основе разрешений (есть хорошая вероятность, что другие файлы, подобные этому, попадут в каталог и добавят их до .gitignore все время является болью).

4b9b3361

Ответ 1

Используйте git add --ignore-errors .

Это все равно даст ошибку для нечитаемых файлов (файлов), но не является фатальной. Остальные файлы будут добавлены.

Ответ 2

Закрытие вашей IDE или чего-либо другого, использующего относительные файлы, которые вы хотите загрузить, решило мою проблему

Ответ 3

Помогло бы вам добавить этот файл в ваш файл .gitignore? Таким образом, все остальные файлы будут версироваться и этот файл будет проигнорирован (если вам это не понадобится).

Ответ 4

sudo chown $(whoami): .git/objects/ -R; git add --ignore-errors .

исправил это для меня. Первая половина фиксированной собственности (кто-то зарегистрирован как root, озорной), а вторая половина делает ошибки не фатальными. Вторая половина сама по себе помогла мне отследить, какой каталог принадлежал root.

Ответ 5

Просто исключите файл. Вы можете добавить .mysql_history в файл .gitignore или добавить его в .git/info/exclude.

Добавление записи в .gitignore будет распространять настройку с помощью репо (поскольку .gitignore хранится с репо); добавление его в .git/info/exclude делает его "личным", потому что этот файл не распространяется с помощью репо. В любом случае .mysql_history будет игнорироваться git-add и друзьями.

Подробнее об игнорировании файлов с Git можно прочитать на этой странице руководства.

Ответ 6

Как указывалось в комментариях @Dhanuka777, если вы используете Visual Studio или Unity, вы должны закрыть все экземпляры Visual Studio и Unity перед git add.

Ответ 7

Я использовал решение @matli, но иногда имел проблемы. Я закончил тем, что использовал

git add --ignore-errors --force .

Ответ 8

Перезапуск системы (Windows) решает мою проблему.

Ответ 9

Закрыл все экземпляры визуальной студии, работал на меня