git, push --mirror, восстановить удаленные ветки

Я сделал частную вилку публичного репо на GitHub, используя это руководство https://help.github.com/articles/duplicating-a-repository

git clone --mirror <path-to-some-public-repo>
cd ./some-public-repo.git
git remote rm origin
git remote add upstream <path-to-some-public-repo>
git remote add privatefork <path-to-your-private-fork>
git push --mirror privatefork

Я сделал некоторую работу, создал свою собственную ветку, подтолкнул ветку к частной ветке. Затем я получил обновления от апстрима до моей приватфорки

git fetch -p upstream
git push --mirror privatefork

Моя новая ветка была удалена во время обновления. Фиксирует еще в репо, но ветка была удалена. Конечно, я мог бы снова создать ветку, но это неправильный путь.

Что я должен сделать, чтобы обновить приватный форк и сохранить новые ветки?

1 ответ

Решение

Я полагаю, так как вы не опубликовали свою новую ветку в "восходящем" вызываемом git fetch -p:

"[r] emove [s после извлечения] любых ссылок на удаленное отслеживание, которые больше не существуют на пульте".
- git-fetch(1) Страница руководства

Другими словами, вы можете нажимать и изменять столько, сколько хотите (на "privatefork") с каждым fetch -p из апстрима вы собираетесь удалить свои изменения.

Кроме того: работа с --mirror а также --prune - вся справочная статья о GitHub - упоминается для создания 1:1-копий / резервных копий репозиториев. Если вы планируете работать с репозиторием, оставьте параметры и выполните "обычное" разветвление.

Другие вопросы по тегам