Как вытащить из репозитория другого компьютера в Git? - PullRequest
75 голосов
/ 09 ноября 2010

Например, я клонировал исходный репозиторий на двух компьютерах.Затем я продолжаю вносить некоторые изменения и фиксирую локальный репозиторий компьютера A. Как мне теперь перенести эти изменения на компьютер B?Оба компьютера A и B подключены к сети.

То, что я ищу, будет эквивалентно тому, как кто-то вручную создает патч и отправляет его мне, который я могу применить к своей рабочей копии / локальному репо.

Ответы [ 7 ]

99 голосов
/ 09 ноября 2010

Если машина, с которой вы хотите получить доступ, доступна через ssh, вы можете добавить репозиторий на нее как удаленный через ssh, а затем извлечь из нее, как если бы вы использовали любой удаленный:* (Вы можете пропустить этап добавления удаленного и просто указать полный URL-адрес в команде git pull вместо удаленного имени, но если вы собираетесь регулярно извлекать данные из хранилища, добавьте его какПульт дистанционного управления сэкономит вам много печатать.)

35 голосов
/ 09 ноября 2010

Посмотрите на git pull --help

Это даст что-то вроде git pull /my/other/repository

11 голосов
/ 09 ноября 2010

Вы можете настроить реальный сервер с помощью git daemon . В противном случае вы можете использовать git bundle , который объединяет внутреннее представление git в файл, который можно отделить с помощью git pull на другом конце.

например. из git docs, связывая все:

git bundle create file.bundle master

Затем на другом конце вы можете сделать что-то вроде:

git pull file.bundle HEAD
7 голосов
/ 09 ноября 2010

Если вы можете подключиться к компьютеру B по ssh, вы можете использовать:

git clone user@host:/path/to/repo

Это позволит удаленное отслеживание через это ssh-соединение и позволит вам использовать git pull / push.

2 голосов
/ 13 июля 2016

У меня сработало для локального репозитория с другим компьютером:

git remote add origin_username username@10.0.0.2:/home/username/dev/project/main/.git/

git pull origin_username master

или

git pull origin_username some_branch
0 голосов
/ 20 ноября 2017

Слишком поздно, но, несмотря на все свои достоинства, и для расширения ответа Antoine Pelisse, вы также можете получить с хоста ssh, который имеет такое же хранилище, с несколькими другими коммитами в нем, без добавления remote в вашу конфигурацию:

git pull user@host:/path/to/repo  # while in the local repo folder

Просто для ясности - одно из возможных применений этого - когда у вас есть два хоста (A и B), которые клонировали одно и то же репо с удаленного и вы зафиксировали некоторые изменения на хосте A и не хотите отправлять их на remote (пока), но вместо этого хотите получить эти коммиты с хоста B. Приведенная выше команда синхронизирует ваши репозитории без нажатияна удаленный .

0 голосов
/ 27 апреля 2017

Я придумал

git clone /path/to/local/repository
...