#git #github #visual-studio-code #onedrive
#git #github #visual-studio-code #onedrive
Вопрос:
Я использую свой OneDrive для фиксации изменений и отправки обновлений с помощью VSCode. На моем рабочем столе и на моем ноутбуке у меня один и тот же каталог в OneDrive, открытый в моей рабочей области. Все изменения одинаковы, и код идентичен, но меня беспокоит то, что если я работаю на своем рабочем столе, это говорит только о том, что мне нужно зафиксировать 1-2 изменения (обычно файл, над которым я работаю). Однако на моем ноутбуке, несмотря на то, что я использую тот же облачный каталог OneDrive, говорится, что мне нужно зафиксировать 33 изменения. Я не уверен, почему это показывает. Я попытался запустить git pull в VSCode, но он по-прежнему показывает те же 33 изменения для фиксации. Я еще ничего не зафиксировал на своем ноутбуке, так как не уверен, что он что-нибудь перезапишет. Я просто не понимаю, в чем разница, хотя он использует один и тот же каталог в облаке. Я проверил этот каталог и вижу только одну скрытую папку «.git», в которой нет другой вложенной папки «.git». Любая помощь была бы отличной, спасибо!
Dan
Комментарии:
1. Это звучит опасно. Почему бы просто не зафиксировать и не внести изменения на одном, а затем нажать на другой, чтобы продолжить работу?
2. Просто примечание, не используйте файловые системы синхронизации, такие как OneDrive или iCloud или Drive, в сочетании с папками репозитория git. Я не знал, что iCloud синхронизирует мои папки, и это оставило у меня головную боль на несколько дней. Я бы посоветовал вам просто работать с удаленным репозиторием, таким как github, и просто фиксировать / вносить изменения всякий раз, когда вы хотите продолжить работу на другой рабочей станции
3. @SiHa честно говоря, я все еще изучаю лучшие практики, поскольку я только начинаю использовать Git, поэтому я никогда не просто переношу изменения на свой ноутбук, спасибо за ваш совет, я обязательно изучу это.
4. @RobrechtVM это тоже хороший совет, спасибо вам за это, я просто буду использовать его в будущем. Какую головную боль оставил вам iCloud, если вы не возражаете, если я спрошу?
5. У вас, ребята, есть какие-нибудь хорошие курсы YouTube или Udemy по лучшему изучению git с помощью VSCode? Я знаю, что существует множество вариантов использования терминала или iTerm2, но разве VSCode не идеален для использования в производственной среде?
Ответ №1:
Помещать различные предупреждения в комментариях в форму ответа — это ненадежный способ совместного использования репозитория между компьютерами. Вы должны создать локальный клон на каждом компьютере. Проблема, с которой вы столкнулись, — это всего лишь одна из незначительных неприятностей, которые могут пойти не так — все может (и, вероятно, будет) стать намного хуже, если вы продолжите этот подход.
FWIW Я подозреваю, что конкретная проблема может быть связана с тем, как git использует статистику файлов, чтобы определить, где потенциально могут быть изменения; но я недостаточно знаю об OneDrive, чтобы найти точное объяснение.
Но на самом деле это не имеет значения. Совместное использование репозиториев между папками — это встроенная git
функция, и вам будет намного удобнее использовать ее по назначению. Обратите внимание, что при желании вы можете создать прямые ссылки между вашими двумя клонами, чтобы вам не приходилось вносить изменения в источник; или, если это неудобно, вы можете даже использовать OneDrive для передачи bundle
файлов туда и обратно (https://git-scm.com/docs/git-bundle )
Эти подходы по-прежнему требуют от вас фиксации изменений, которыми вы делитесь. (Эти коммиты не обязательно должны находиться в ваших основных ветвях, и вам не нужно их сохранять, но это дополнительный шаг к их совместному использованию.) Если это проблема, вы можете даже сохранить копию рабочей папки (но не всего репозитория) на OneDrive, ископируйте обновленные файлы туда и обратно через эту копию. Вам все равно придется убедиться, что ваши файлы синхронизируются, когда это необходимо, но это менее рискованный вариант, чем работа непосредственно с каталогом sync.
Комментарии:
1. спасибо за ваш ответ и разбил его так, как вы это сделали. Это помогло многое прояснить! Я обязательно рассмотрю все упомянутые вами различные подходы, еще раз спасибо!