Это проблема, которую трудно описать (и, конечно, трудно найти ответ), наиболее близким из того, что я обнаружил, является перемещение двух уже синхронизированных деревьев каталогов в приложение git
У меня есть две копии текстовых файлов моих документов, одна на настольном компьютере с Linux, другая на ноутбуке. Ранее я rsync
периодически запускал синхронизацию этих файлов в обоих направлениях. Теперь я хотел бы перенести управление этой проблемой git
, но мне было интересно, каким будет самый чистый способ начать.
Я разместил файлы на своем рабочем столе на удаленном git
сервере, следуя инструкциям в Интернете. Это было хорошо. Теперь проблема для меня на стороне ноутбука. Т.е. у меня уже есть наполовину синхронизированные файлы и папки на моем ноутбуке, и я не думаю, что обычно предлагаемый git clone
будет правильным ответом на мою ситуацию, не так ли?
Предположим, что файлы и папки на моем ноутбуке уже не синхронизированы с обоими . Какие правильные шаги нужно предпринять, чтобы синхронизировать текстовые файлы моего документа git
с моим уже настроенным удаленным git
репо?
unison
: он специально разработан для двусторонней (или многоузловой) синхронизации.unison
это то, что я использовал, но теперь предпочитаюgit
.Ответы:
Посмотрите ответ, почему использование git для синхронизации не очень хорошая идея.
Вот тестовый пример, который показывает, как синхронизировать git с двумя уже заполненными каталогами.
На данный момент у меня есть локальный репозиторий Git, который синхронизирован с моим сервером Git. Теперь я создам новую копию файла REDME.md, как если бы он был rsyn-ed на другой компьютер
Поскольку бар позади мастера, я не могу толкнуть.
Я пытался сделать git pull. Git объединил репозиторий, но не загрузил файл, потому что он уже существует локально.
Вы также должны всегда помнить о необходимости выполнять git pull перед изменением любых файлов в каждой системе, иначе вы получите конфликты, которые необходимо разрешить.
источник
git pull
чтобы тянуть все, так как большинство из них уже синхронизированы. Если последняя обновленная версия всегда на одной стороне (т.е. не на обеих), нужен ли мне этот подход? Если бы обновления происходили с одним и тем же файлом с обеих сторон, разве мне не пришлось бы разрешать конфликты каким-либо образом?Вы можете скопировать клон на свой ноутбук, а затем скопировать существующие файлы на свой ноутбук поверх рабочей копии. Затем вы можете составить объединенный файл, проверив различия, возможно восстановив удаленные строки, которые вы хотите сохранить.
источник
Похоже, использование git в качестве посредника синхронизации было бы идеальным решением. Я бы порекомендовал вам избегать использования git в качестве инструмента синхронизации по следующим причинам.
Git никогда не собирался работать таким образом.
Git медленно работает с большими файлами ( 2 )
Git не синхронизирует пустые папки
Git не отслеживает метаданные файловой системы
Git не отслеживает другие проекты git (любая папка с папкой .git внутри)
Цитата с сайта GitHubs
https://help.github.com/articles/what-is-my-disk-quota
Если вы когда-либо работали с репо с тысячами коммитов, git работает очень медленно. Dropbox или rsync станут лучшим инструментом для работы.
источник