Настройка Git репозитория для разработки с двух машин?

Я только начал использовать git, и меня впечатлили отличия рабочего процесса от SVN, но я столкнулся с одним вопросом о структуре / настройке, который, по-видимому, не объясняет интуитивно документацию по настройке, и мне интересно, это даже возможно.

Моя установка заключается в том, что у меня есть несколько компьютеров, с которых я занимаюсь разработкой (настольный компьютер и ноутбук), поэтому, чтобы упростить синхронизацию и обеспечить резервное копирование для репозитория git, я установил «публичный» пустой репозиторий на своем домашнем сервере Linux, который я можно ssh в с рабочего стола и ноутбука. Это на самом деле не публично, поскольку для доступа к нему требуется доступ по SSH.

Моя проблема возникает, когда я делаю изменения на своем рабочем столе, я могу легко отправить изменения в хранилище сервера (у меня естьmirror флаг установлен дляorigin удаленный в этом хранилище), и используяgitx Я вижу, что локальные и удаленные состояния выглядят одинаково, и каждый из моих отдельных коммитов был зарегистрирован на сервере.

Вопрос в том, что когда я переключаюсь на свой ноутбук, которым я пользуюсь довольно редко, git-репозиторий, скорее всего, имеет несколько коммитов за серверной версией и нуждается в обновлении. Я начал использоватьgit pull чтобы получить эти изменения локально, но вместо того, чтобы дублировать все отдельные фиксации на сервере в локальный репозиторий, он добавляет одну новую фиксацию «слияния» в локальный репозиторий, иgitx показывает слияние в ветке удаленного хранилища в этой точке.

Есть ли команда / рабочий процесс, который позволил бы мне обновить локальное хранилище до точного состояния удаленного хранилища (например, если я сделаюgit push --mirror данные не будут потеряны)? Должен ли я каждый раз удалять свой локальный репозиторий иgit clone это снова каждый раз?

В настоящее время никому больше не понадобится доступ к этому репозиторию, хотя в будущем он может стать общедоступным репозиторием для людей, из которого можно извлекать информацию, поэтому будут приветствоваться ответы, которые не разрушают эту возможность.

Редактировать: Мои коммиты включают в себя перебазирование веток с главной ветки; это может быть то, что вызываетgit pull Команда показать как слияние? Это--rebase флаг что мне тогда нужно?

Решение Объяснение: Оказывается, я сделал следующее, чтобы настроить свои репозитории:

Используйте ноутбук для инициализации Git-репозиторияПередача репозитория ноутбука на сервер (фиксацияA)Внес изменения и совершил это на ноутбуке (ноутбук на коммитеB)Настольный сервер клонирует репозиторий (коммитA)Вносить изменения на рабочем столе и фиксировать (фиксируетC, D, Eвключая перебазирование веток)Рабочий стол выдвигается на сервер (сервер переходит кE)Когда ноутбук тянет с сервера, происходит слияние (так какB не может перемотать впередE).Ноутбук сливается и передает изменения на серверРабочий стол теперь также должен объединиться.

Из-за этого дополнительного коммита, который был непреднамеренной ошибкой новичка, я подумал, что это всегда будет слияние. По предложению Xentac я вернулся и обнаружил на ноутбуке, что произвел слияние, которое не было передано на сервер, который был виновником, и как только я получил все три по-настоящему синхронно,git pull --ff (форсирование только ускоренного слияния) работает просто отлично и предупреждает меня, если что-то не синхронизировано, перед выполнением слияния.

Ответы на вопрос(2)

Ваш ответ на вопрос