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-копий / резервных копий репозиториев. Если вы планируете работать с репозиторием, оставьте параметры и выполните "обычное" разветвление.