Как я могу извлечь из другого репозитория компьютера в Git?

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

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

Ответ 1

Если машина, из которой вы хотите перейти, доступна через ssh, вы можете добавить репозиторий на нее как удаленный через ssh, а затем вытащить ее, как и любой удаленный:

$ git remote add repo_b [email protected]:path/to/repository.git
$ git pull repo_b master

(Вы можете пропустить шаг добавления пула и просто указать полный URL-адрес в команде git pull вместо имени удаленного пользователя, но если вы собираетесь регулярно вынимать из репозитория, добавив его поскольку пульт будет экономить много ввода.)

Ответ 2

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

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

Ответ 3

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

например. из документов git, связывая все:

git bundle create file.bundle master

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

git pull file.bundle HEAD

Ответ 4

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

git clone [email protected]:/path/to/repo

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

Ответ 5

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

git remote add origin_username [email protected]:/home/username/dev/project/main/.git/

git pull origin_username master

или же

git pull origin_username some_branch

Ответ 6

Я придумал

git clone /path/to/local/repository

Ответ 7

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

git pull [email protected]:/path/to/repo  # while in the local repo folder

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