Использование git с синхронизированными файлами с разными именами Windows - PullRequest
0 голосов
/ 11 ноября 2018

Для конкретного git-репозитория я использую учетную запись OneDrive для синхронизации двух машин с Windows 10, скажем, MachineA и MachineB. Да, я мог бы танцевать пуш-пул / слияния между двумя машинами, поэтому, пожалуйста, не рекомендуйте это. Я спрашиваю о конкретном использовании Git вне лейбла. Я делаю это потому, что очень часто переключаюсь, когда пишу код дома (туда и обратно между столом и диваном, в зависимости от ребенка, жены, времени обеда), и потому что я не хочу фиксировать наполовину написанный код или загрязнять мою историю миллиардом тривиальные коммиты.

Beyond Compare говорит мне, что файлы одинаковы в двоичном формате, но, хотя я могу редактировать файлы и выполнять свой проект, я не могу выполнять какие-либо команды git на компьютере, противоположном тому, где было создано хранилище. Каким-то образом имя пользователя фиксируется в хранилище.

Например, если я создал репо на MachineA с именем пользователя A, а затем выполните любую команду git на MachineB (с именем пользователя B), я получу:

$ git status
fatal: Invalid path 'c:/Users/usernameA': No such file or directory

Этот сбой происходит в обоих направлениях, в зависимости от того, где было создано git-репо. Git отлично работает в других местах на каждой машине независимо, но не работает на другой машине. Я использую на одном компьютере git 2.18.0.windows.1 и на другом 2.17.1.windows2.

Я не смог найти жестко запрограммированное имя пользователя или домашний каталог пользователя ни в одном понятном для человека параметре конфигурации - глобальном, системном или локальном для репозитория.

Я могу повторить проблему с новым репозиторием, без файлов или коммитов - просто git init.

Если это принципиально неосуществимое использование git, то я изменю свои привычки.

Если, технически говоря, двоичный каталог git должен работать на компьютере, отличном от того, где он был создан, я хотел бы знать, как это исправить.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Вы храните свой код в папке c: \ users \ username.Переместите его за пределы этого пути (вы можете использовать mklink / j, чтобы связать его с c: \ users \ username, чтобы синхронизировать его).Git иногда использует абсолютные пути, и эти пути abs различаются на machineA и machineB.

0 голосов
/ 11 ноября 2018

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

Вы всегда можете зафиксировать WIP (Work-In-Progress) в выделенной черновой ветке, где вы будете git push --force каждый раз, когда вам нужно сохранить упомянутую незавершенную работу.

Что касается сообщения об ошибке, проверьте все настройки с помощью git config -l --show-origin.
Обязательно сначала обновите до 2.19.1 и посмотрите, сохраняется ли проблема. ( PR 1645 был как-то связан с этой ошибкой)

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