С тех пор, как я переключился на OS X и Vim, я нашел, что проще всего управлять всеми моими «точечными файлами» (всеми моими файлами конфигурации и другими сценариями) с помощью Git. После того, как я уже настроил мои точечные файлы в репозитории, следуя этому руководству, я решил, что будет достаточно легко перенести все мои настройки в мою настройку Cygwin в моем разделе Windows.

Уже установив репозиторий на Github, я просто clone его и переместил все файлы в свой домашний каталог, сделав его зеркалом моего домашнего каталога OS X. К сожалению, я не могу использовать реальное репо дальше в Cygwin.

Проблема в том, что я не могу использовать репозиторий dotfiles с git в Cygwin. Настройка уникальна для большинства обычных репозиториев git, поскольку рабочий каталог и каталог git находятся в разных местах. В частности, рабочим каталогом является $HOME (/Users/kyle в OS X, /home/kyle в Cygwin), а git- репозиторий - $HOME/.dotfiles.git . Поэтому, если я хочу получить, например, статус репо, я набрал бы следующую команду (которую я, конечно, псевдоним, чтобы уменьшить ввод):

git --work-tree=$HOME --git-dir=$HOME/.dotfiles.git status -uno

Хотя это нормально работает на OS X, он отказывается работать в Cygwin. Независимо от того, использую ли я свой псевдоним или заменяю $HOME вручную, я получаю следующую ошибку git:

fatal: Not a git repository: /home/Kyle/dotfiles/.git/modules/.build/git

Я не понимаю, откуда взялась эта ошибка, но путь /home/Kyle/dotfiles был исходным местоположением репозитория git, когда я изначально клонировал его. Кроме того, важно отметить, что репо сильно зависит от субмодулей. Если требуется конкретная информация, этот репозиторий можно найти на GitHub. Команды, которые я выполнил для настройки репо в Cygwin, также можно найти в файле Readme.

1 ответ1

0

Я разобрался в проблеме. Если у вас есть git-репо с подмодулями, затем перенесите содержимое репо, и все начинает ломаться.

По сути, вы должны попытаться запустить git submodule init и / или git submodule update . В противном случае вы получите загадочную ошибку, подобную упомянутой в вопросе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .