не могу добавить все файлы в git из-за разрешений - PullRequest
24 голосов
/ 10 декабря 2008

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

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

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

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

Ответы [ 7 ]

39 голосов
/ 11 декабря 2008

Использование git add --ignore-errors .

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

4 голосов
/ 29 мая 2012
sudo chown $(whoami): .git/objects/ -R; git add --ignore-errors .

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

4 голосов
/ 10 декабря 2008

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

3 голосов
/ 21 августа 2018

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

3 голосов
/ 10 декабря 2008

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

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

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

2 голосов
/ 05 апреля 2019

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

1 голос
/ 13 ноября 2017

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

git add --ignore-errors --force .

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