Посмотрите, поможет ли вам какой-либо из этих советов:
Проверьте, есть ли какой-либо файл с именем ~/.gitconfig.lock. Если это так, просто удалите его.
Файл ~/.gitconfig принадлежит вам (используйте ls -la ~/.gitconfig чтобы проверить). Если этого не произойдет, вы можете сменить владельца, используя sudo chown <your_username>:<your_username> ~/.gitconfig
Если ни один из этих способов не решит проблему, вы всегда можете отредактировать файл ~/.gitconfig с помощью вашего любимого текстового редактора. Это просто файл, подобный INI. Пример:
Для моего случая, мой ~/.gitconfig файл указывал (с символической ссылкой) на мои старые dotfiles, которые я переместил в другое место, что означает gitconfig указывал на несуществующий файл.
Чтобы знать, где мой gitconfig был символически связан с, я сделал ls -la ~/.gitconfig, который показал, что он указывает на файл, который я переместил в другое место.
Мне пришлось обновить символическую ссылку на мои новые dotfiles (dotfiles - это просто имя папки всех моих файлов .smth).
Чтобы обновить символическую ссылку, я сделал ln -sf ~/your-new/path-to/gitconfig.symlink ~/.gitconfig
Моя проблема заключалась в том, что я смонтировал файл .gitconfig в контейнере из своей локальной файловой системы. Похоже, что git хранит gitconfig путем перемещения файлов. Он не может зафиксировать, потому что он не может переместить (не просто записать, а mv) временный файл в ~/.gitconfig .Мое решение состояло в том, чтобы смонтировать каталог (домашний каталог), а не только файл .gitconfig.