Якщо ви переміщуєте всі гілки до нового репо з старого, тоді у вашому локальному репо потрібно встановити відстеження кожної гілки до існуючих гілок походження, перш ніж натиснути на нове репо, в іншому випадку всі ваші гілки походження не з’являться у нове походження. Зробіть це вручну, відстежуючи або перевіряючи кожну гілку, або використовуйте один вкладиш:
for remote in `git branch -r | grep -v '\->' | grep -v master`; do git branch --track `echo $remote|sed 's=origin/=='` `echo $remote`; done
Ця командна команда одного рядка заснована на її версіях в інших відповідях на цій сторінці, але, можливо, краща, оскільки:
- вона правильно налаштовує відстеження гілок, на відміну від деяких старих варіантів цієї команди на цій сторінці, які подають лише один параметр --Track, і, таким чином, кожна гілка закінчується майстром відстеження - не добре
- називає локальні гілки без префіксу "походження /", якого я особисто не хочу - і відповідає тому, що відбувається, коли ви звичайно перевіряєте відділення.
- пропускає майстер стеження, оскільки це вже відбувається
- насправді не перевіряє нічого, таким чином, це швидко
- уникає спотикання над -> у виході гілки гіта -r
Далі, якщо ви перемикаєте джерела, замініть посилання на старе джерело та вкажіть новий пульт. Переконайтесь, що спершу ви створили новий віддалений, використовуючи бітбукет / github GUI, але не додайте до нього жодних файлів, або виникне проблема злиття. Напр
git remote set-url origin git@bitbucket.org:YOUR/SOMEREPO.git
Тепер натисніть. Зверніть увагу, що друга команда потрібна і для натискання тегів:
git push -u --all origin
git push --tags origin