2015-10-27 3 views
0

Я отклонил проект от неправильного проекта (я разветвил вилку), и я хочу сбросить свой репозиторий GitHub, который будет разветвлен от оригинала. Перемещение вилки в GitHub включает в себя отбрасывание и откручивание AFAIK. Единственная проблема заключается в том, что я хочу, чтобы мои старые удаленные ветви ссылаются на новую ветку, не создавая локальные ветви, потому что (скажем, ради аргумента) у меня есть 100 разных ветвей, и потребуется слишком много времени, чтобы проверить новые локальные версии каждая удаленная ветка. (Мой локальный список филиалов довольно скудный, но я всегда оставляю фишки на GitHub).Направьте весь удаленный репозиторий git на другой удаленный

+1

Я не совсем понимаю проблему, но вы попробовали добавить новый пульт ('git remote add $ name $ url'), а затем запустить' git push -all' (или '--mirror')? – Whymarrh

+0

Если я делаю git branch -a, я увижу 1 или 2 ветви локально, а затем 100 ветвей, которые скажут/remotes/repoA/branchName, я хочу, чтобы они отображались в branchB как/remotes/repoB/branchName без необходимости создавать локальные ветви и сделать push -all – BunnyStrider

+1

Я думаю, что '--mirror' - это то, что вы ищете. Выполните клонирование репозитория, который у вас есть на диске, в новое место, используя флаг зеркала, добавьте к нему новый пульт и нажмите его с помощью флага зеркала на новый пульт. – Whymarrh

ответ

1

Вы можете достичь этого, используя право refspec в git push (этап 4):

  1. Переименование ссылки удаленного отслеживания refs/remotes/origin/... в refs/remotes/oldfork/... переименованием удаленный: git remote rename origin oldfork
  2. Капля и повторно вилкой репо на GitHub
  3. Повторное добавление origin удаленных: git remote add origin <url>
  4. Push-старые ветви к новой развилке: git push origin 'refs/remotes/oldfork/*:refs/heads/*'
  5. Удалить oldfork пульт: git remote remove oldfork

Если вы имели свои собственные тег в оригинальной вилке, пожалуйста, добавьте --tags к git push командной строке.