Как я могу извлечь из другого репозитория компьютера в 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. Команда выше с синхронизацией ваших репозиториев без нажатия на удаленный.