Как я могу вытащить из репозитория другого компьютера в Git?
например, я клонировал исходный репозиторий на двух компьютерах. Затем я иду вперед и делаю некоторые изменения и фиксирую в локальном репозитории компьютера A. Как теперь я могу вытащить эти изменения на компьютер B? Оба компьютера A и B подключены к сети.
то, что я ищу, будет эквивалентно тому, что кто-то вручную создает патч и отправляет его мне, который я могу применить к своей рабочей копии/локальному РЕПО.
7 ответов:
Если машина, которую вы хотите вытащить, доступна через
ssh, вы можете добавить репозиторий на него как удаленный через ssh, а затем вытащить из него, как и любой удаленный:$ git remote add repo_b username@host:path/to/repository.git $ git pull repo_b master(вы можете пропустить шаг добавления удаленного и просто указать полный URL-адрес в
git pullкоманда вместо удаленного имени, но если вы собираетесь регулярно извлекать из репозитория, добавление его в качестве удаленного позволит вам сэкономить много ввода.)
вы можете настроить реальный сервер с 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
немного поздно, но для всего этого стоит и расширить ответ 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