2015-12-31 3 views
5

Как правило, источником git fetch является ref/heads/* удаленного хранилища.Может ли Git извлекать из ветвей удаленного отслеживания удаленного хранилища?

Не разрешено ли получать из ветвей удаленного отслеживания, то есть ref/remotes/* удаленного хранилища?

+2

Вы хотите получить из удаленного источника, кроме источника? –

+0

Я могу или не могу. – Tim

ответ

6

Конечно!

«Нормальный» выборка является git fetch origin refs/heads/*:refs/remotes/origin/*

Это говорит о текущем хранилище для подключения к origin, получить список refs/heads/* и хранить ссылки на местном refs/remotes/origin/.

Вы можете настроить это, чтобы получить origin:refs/remotes/* так: git fetch origin refs/remotes/*:refs/remotes/origin/*

Стоит отметить, что полезность этого зависит от знания пульта дистанционного управления вы говорите: Вы получаете удаленное имя, настроенное на удаленном сервере, на который вы ссылаетесь, но вы не получите информацию об этом пульте. Другими словами, вы вполне можете увидеть новую запись refs/remotes/origin/origin/master, но что именно такое отслеживание станет загадкой, если вы не знаете, что такое origin/origin.

+0

Хотя вы не знаете, что отслеживает ветвь отслеживания, это просто означает, что вы «вдвойне не знаете», о чем идет ветка. То есть если «источник/хозяин» пульта - это какая-то неизвестная вещь, соответствующий локальный «хозяин» этого пульта - это неизвестная вещь с примененными локальными хаками, которые в дальнейшем могут расходиться. – Kaz

0

Не разрешено ли получать из ветвей дистанционного отслеживания i.e ref/remotes/* удаленного репозитория?

Да, вы можете.

Git не заботится о том, откуда исходит источник. Вы можете извлечь, вытащить & объединить формы разных ветвей и происхождения в одно и то же время.

Рассмотрим это:

У вас есть большой проект, в котором у вас есть несколько субподрядчиков, которые работают над одним проектом, но каждый из них меняется код в другой путь.

Как только работа будет завершена, вам необходимо объединить все это в один большой проект.

Как?

git merge origin1/A origin2/B origin3/3 ... originN/N 

Опять же, мерзавец, не все равно, где содержание приходит.