Как мне вытащить из репозитория другого компьютера в GIT?
Вопрос
Например, я клонировал исходный репозиторий на двух компьютерах. Затем я иду вперед и внося некоторые изменения и совершаю локальный репозиторий компьютера 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. дистанционный пульт.