Использование "прокси" с git - PullRequest
2 голосов
/ 13 марта 2012

В настоящее время я работаю над проектом, который требует, чтобы я ssh со своей машины X на машину Y, сделал там git pull, а затем получил скомпилированный код, чтобы я мог видеть, где мы Вы на

Я хотел бы использовать git непосредственно на X, но не могу, потому что я получаю код из локальной сети, к которой принадлежит Y. Есть ли способ как-то использовать X в качестве прокси, чтобы я мог использовать git непосредственно на моей машине и избавить себя от многих хлопот?

(кстати, я использую дистрибутив Linux)

Ответы [ 3 ]

2 голосов
/ 13 марта 2012

Если у вас sshd работает на Y (поскольку вы можете ssh на Y и выполнять операции), вы можете:

  • установить git на X
  • git clone ssh://user@Y:/path/to/repo/on/Y

Таким образом, вы получаете клон Y репо прямо на X, вносите изменения и можете вернуться к Y репо (origin)если хочешь.

1 голос
/ 13 марта 2012

Я бы просто перенаправил локальный порт на компьютер Y, когда вы запустили ssh на компьютер X:

ssh -L2022:Y:22 yourself@Y

Теперь, когда ваш ssh-сеанс существует, вы можете использовать другую локальную оболочку и запускать ssh-команды для компьютера Y:

git clone ssh://yourself@localhost:2022/repos/Yrepo repo_from_Y

Или, конечно, клонировав / вытащив из Y в X, вы можете клонировать / вытащить из X на локальную машину, сделав X промежуточным звеном прокси. Если вы сделаете клон на X пустым зеркалом Y, вы можете добавить задание cron, чтобы поддерживать его в актуальном состоянии. Использование локального порта пересылки на самом деле прост и очень гибко.

1 голос
/ 13 марта 2012

Вы можете использовать прокси-функцию ssh.Например, у меня есть (имена скрыты для защиты виновных :-)):

# tunneling
Host *.secure2.com
    ProxyCommand ssh secure1.local.com 'conn %h %p'

, где «conn» - это моя команда, которая устанавливает соединение с целевой парой хост / порт.Вы можете использовать команду nc, если она у вас есть.См. Справочную страницу ssh_config (обычно в разделе 5).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...