Итак, у вас есть репо с постера, где все запускают WIP-коммиты, которыми стоит поделиться или что-то в этом роде.Существуют и другие рабочие процессы, которые не приводят к таким вопросам, как ваш, к запуску запросов на удаление и т.п., но у всех рабочих процессов есть свои недостатки.Масштабирование может быть недостатком для репозиториев, но избежать столкновений в пространстве имен несложно.
Имена ветвей репо-локальны.Любая переписка между репозиториями является исключительно вопросом удобства и сотрудничества;часто удобно использовать одни и те же имена, но также часто удобно иметь локальное имя для ветви или вообще не делиться им.
Продолжая то, что вы говорите, так и здесь.
git push -u origin featureb:thejoshwolfe/featureb
когда вы нажимаете ветку featureb
в первый раз, я нажимаю :jthill/featureb
и т. Д. Ваше репо принадлежит вам, ветви в ваших репозиториях отслеживают любые ветки вверх по течению, которые вы говорите.
edit: Git по умолчанию откажется от нажатий, которые не включают в себя всю текущую историю ветки.Если два человека попытаются выдвинуть противоречивые истории к одному имени ветви, git отклонит все, что придет вторым.Вы можете использовать --force-with-lease
, чтобы делать безопасные форс-мажоры в больших объемах репозиториев на центральной и большой станциях, но есть и другие способы избежать этой проблемы.
Чтобы зарезервировать или отменить новое имя ветки, выполните
git push origin $(git commit-tree -m - `:|git mktree` <&-):refs/heads/newbranch
и если это сработает, то ваше имя, вы можете смело нажимать на него сейчас с git push -u origin +newbranch
.