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



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



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

671   7  

7 ответов:

Если машина, которую вы хотите вытащить, доступна через 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 [email protected]:/home/username/dev/project/main/.git/

git pull origin_username master

или

git pull origin_username some_branch

Я придумал

git clone /path/to/local/repository

немного поздно, но для всего этого стоит и расширить ответ Antoine Pelisse, вы также можете вытащить из ssh-хоста, который имеет то же самое РЕПО с несколькими более коммитами в нем, не добавляя remote в свой конфиг:

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

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

Comments

    Ничего не найдено.