Как мне вытащить из репозитория другого компьютера в GIT?

StackOverflow https://stackoverflow.com/questions/4131164

  •  29-09-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

$ git remote add repo_b username@host:path/to/repository.git
$ git pull repo_b master

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

Другие советы

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

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

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

Например, из документов GIT, объединяя все:

git bundle create file.bundle master

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

git pull file.bundle HEAD

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

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

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

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

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

Я придумал

git clone /path/to/local/repository

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top