2014-02-20 2 views
1

Я хотел бы автоматизировать создание ветвей функций, которые соответствуют в нескольких проектах. Я могу создать скрипт, но, чтобы ускорить работу, было бы неплохо, если бы я просто сказал удаленному репо создать ветку, не клонируя весь исходный код. Это возможно?Как создать ветку без клонирования?

ответ

2

Если ваше дистанционное репо не является голым, вы можете сделать все это с помощью ssh и запустить команды git непосредственно в удаленном репозитории. Синтаксис SSH довольно прост: ssh [email protected] command:

ssh [email protected] git branch newbranchname 
ssh [email protected] git checkout newbranchname 
ssh [email protected] git pull --quiet --no-commit 

И так далее.

Если ваше дистанционное репо является открытым или если вы не можете ssh в удаленный репозиторий, то нет, вы не можете этого сделать. Протокол передачи git не позволяет этого. Насколько мне известно, единственные команды, которые вы можете запускать на удаленных репозиториях без локального клонирования, имеют суффикс «-remote». ls-remote, peek-remote и parse-remote.

+0

Отлично, что тогда будет командами git? Что-то вроде git init? git fetch origin git branch blah blah – Marty

+0

Любые команды git, которые можно запускать в не-голом репозитории. С помощью ssh вы на самом деле находитесь на удаленном компьютере при выполнении команды. Я обновил свой ответ с некоторыми тривиальными примерами. –

+0

Я думаю, что неправильно понял ваш комментарий. Похоже, вы говорите ssh на сервер, на котором находится дистанционное репо? В контексте этого я использую Jenkins и GitHub. Не уверен, что я могу удаленно. Если у меня есть имя ветки и хеш-фиксация для каждого репо, я надеюсь, что могу сказать удаленному репо, чтобы сделать ветку из фиксации без клонирования локально. – Marty

Смежные вопросы