Мы работаем с полуцентрализованным git-репозиторием здесь, где я работаю. У каждого разработчика есть свое поддерево в центральном репозитории git, поэтому оно выглядит примерно так:
master
alice/branch1
alice/branch2
bob/branch1
michael/feature
release/1.0
release/1.1
Работая локально в моем дереве, у меня есть topic/feature
, что соответствует michael/feature
в центральном дереве.
Я использовал
git push origin topic/feature:michael/feature
чтобы отправить мои изменения в удаленное дерево. Однако это громоздко и может привести к ошибкам (например, опускание имени разработчика, неправильное написание имени функции и т. Д.).
Я ищу более чистый способ сделать это. Например, «git push
». Я подозреваю, что установка другого пульта с измененной привязкой refspec сделает это, но я не уверен, как именно это сделать. Я также не уверен, как изменить мои текущие определения веток, чтобы использовать другой пульт.
Мой текущий .git/config
выглядит примерно так:
[remote "origin"]
url = git://central/git/project
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "topic/feature"]
remote = origin
merge = refs/heads/michael/project
Редактировать: Я также хотел бы применить это к извлечениям / извлечению. Но заботится ли об этом branch.<name>.merge
? 1023 *
Я буду продолжать исследовать это и публиковать здесь, если найду что-то, но я надеюсь получить другие хорошие идеи.
Редактировать 2: Я решил, что имена локальных и удаленных филиалов будут одинаковыми. Похоже, что это будет наименьшая работа и наименее подвержены будущим проблемам.