Мы работаем с полуцентрализованным хранилищем 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
". Я подозреваю, что установка другого пульта с измененным fetch 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
Изменить: Я также хотел бы применить это для pull/fetches. Но заботится ли об этом branch.<name>.merge
?
Я продолжу исследовать это и опубликовать здесь, если найду что-то, но я надеюсь получить другие хорошие идеи.
Изменить 2: Я решил, что буду сохранять имена локальных и удаленных веток одинаковыми. Похоже, что это будет наименьшая работа и менее подвержена будущим проблемам.