Сценарий 1: удаление ветвей, которые больше не существуют
Чтобы удалить ветви, которых больше не существует, я следовал инструкциям в ответе на вопрос StackOverflow Как удалить ветку Git как локально, так и в Github? , выполнив команду следующие команды:
$ git push origin :0.9-doc-rewrite
$ git push origin :path-and-#24
Сценарий 2. Объединение изменений в существующей ветке, не являющейся главной.
Чтобы обновить ветку upstream / 0.9, я сделал следующее:
$ git checkout --track origin/0.9
$ git fetch upstream
$ git merge upstream/0.9
$ git push
Сценарий 3: отслеживание новых неосновных веток
Не уверен, что это лучший способ справиться, но вот что я сделал:
$ git branch flexible-task-declarations upstream/flexible-task-declarations
Branch flexible-task-declarations set up to track remote branch flexible-task-declarations from upstream.
$ git checkout flexible-task-declarations
$ git push origin flexible-task-declarations
Чтобы подтвердить, что все ветви находятся на одном и том же коммите:
$ git branch -av
Это покажет все ветви - локальные и удаленные - и покажет самое последнее сообщение о коммите и хэш SHA1.
Веб-исследование, которое может пролить свет на лучший метод обработки сценария 3
Ключевое различие между форком Git по сравнению с простым клоном Git или проверкой SVN состоит в том, что ваш форк никогда не будет обновляться с главным репо, если вы не сделаете это. К счастью, есть простой инструмент, который поможет вам сделать это. Ваш форк отделен и равен мастеру в терминах Git, поэтому, если вы хотите отслеживать изменения в мастере, вы можете создать отслеживающую ветвь в своем разветвленном репо и объединить эти изменения с мастер-веткой вашего форка всякий раз, когда вы хотите что-то зафиксировать.
Я настоятельно рекомендую гем GitHub, который вы можете установить, чтобы легко отслеживать изменения в любом другом репозитории, связанном с вашим. См. Текст README внизу этой страницы для установки и использования:
http://github.com/defunkt/github-gem/tree/master
Игнорировать очередь Github Fork Это зло! Очередь ветвления - это инструмент для сопровождающих, которые любят выбирать отдельные коммиты от участников, но не желают объединяться во всей своей ветке. Если вы поэкспериментируете с очередью разветвлений, вы повредите разветвление (хотя это можно исправить, прочитайте что-то пошло не так). Многие новички на github чувствуют, что должны что-то делать с очередью ветвлений, потому что там есть много, возможно, противоречивых изменений, и они не знают, какой предполагаемый способ поддерживать свою ветвь в актуальном состоянии. Прочитайте Поддерживая свою вилку в актуальном состоянии и узнайте!
Рабочий процесс Джанго на Github
В проекте Django есть инструкции о том, как Сотрудничать на Github , который использует то, что кажется стандартным способом обработки разветвления и вытягивания в восходящих изменениях.
Различная начальная конфигурация вилки
Длинный гостевой пост Нгуена под названием Настройка репозиториев Git для проектов с открытым исходным кодом на GitHub в блоге Майкла Хартла описывает интересный способ настройки репозитория Github, который вы разветвили. Цели этого метода в соответствии со статьей:
- Синхронизируйте репозитории, чтобы каждый из них содержал полный «официальный» репозиторий
- Разрешить разработчикам получать официальные обновления
- Поощряйте работу с ветками, отличными от master