Копирование git локальной ветки между машинами?

ОК, поэтому я отслеживаю удаленное репо на двух машинах, так что у обоих есть главная ветка. Я также создал локальную ветку на моем ноутбуке под названием development. Есть ли способ скопировать этот локальный филиал на мой настольный компьютер? Я бы использовал свой ноутбук, но по какой-то причине у меня возникают проблемы с gdb и emacs...

Изменить: это сработало для меня

git remote add laptop [username]@hostname:/path/to/repo
git fetch laptop
git checkout --track -b development laptop/development
git pull

Ответы

Ответ 1

Предположим, что у вас есть оба репозитория на "настольной" машине и репозитории на "ноутбуке" , настроенном таким образом, что вы можете загружать "рабочий стол" с "ноутбука" и наоборот (например, через SSH или через git://, то есть через git -demon, или, возможно, через простой HTTP).

Оба компьютера "рабочий стол" и "ноутбук" имеют ветвь "мастер", а также "ноутбук" имеет ветвь "развития".

Сначала установите удаленный ярлык и ветки удаленного отслеживания, используя git remote:

desktop$ git remote add laptop [email protected]:/path/to/repo

Это создало бы удаленные именные "ноутбуки" и ветки удаленного отслеживания: "ноутбук/мастер" (или, точнее, "refs/remotes/laptop/master" ), который следует за "ведущим" ветки "на ноутбуке", и "ноутбук/разработка", который следует за развитием "разработки" на "ноутбуке" .

Затем вам нужно создать локальную ветвь "разработка" на "рабочем столе", которая будет отслеживать (отслеживать) ветку удаленной отслеживания "ноутбук/разработка" (поскольку вы не можете разрабатывать на дистанционно- ветки отслеживания):

desktop$ git checkout -b development --track laptop/development

или просто (с современным git)

desktop$ git checkout --track laptop/development

Подробнее см. git-branch manpage.

Эта настройка позволяет использовать просто "git pull", когда на ветке "разработка" пока на "рабочем столе", и git будет автоматически извлекать все изменения в репозитории на "ноутбуке" в "ноутбук/мастер" и "а также попытайтесь объединить" ноутбук/развитие "в" развитие" (текущая ветвь), что обычно приводит к быстрой перемотке вперед, т.е. к простому движению "развития".

Затем вы можете создать аналогичную настройку на "ноутбуке" (хотя настройка существующей ветки "разработки" на "ноутбуке" для отслеживания "desktop/development" может потребовать редактирования файла конфигурации напрямую или через "git config" ).

Ответ 2

Можете ли вы не просто git вытащить удаленную ветку с вашего ноутбука? git будет тянуть через http, ssh - многие протоколы. Мой синтаксис git довольно ржавый, но что-то вроде...

Изменить: выкапывая память и руководства, вам может потребоваться сначала добавить новый пульт дистанционного управления с помощью

git remote add ssh://remotestuff/

то вы можете

git checkout --track -b localBranchName remote/remoteBranch

для отслеживания ветки.