Jika Anda memindahkan semua cabang ke repo baru dari yang lama maka di repo lokal Anda, Anda perlu mengatur pelacakan setiap cabang ke cabang asal yang ada, sebelum mendorong ke repo baru, jika tidak semua cabang asal Anda tidak akan muncul di asal baru. Lakukan ini secara manual dengan melacak atau memeriksa setiap cabang, atau gunakan satu liner:
for remote in `git branch -r | grep -v '\->' | grep -v master`; do git branch --track `echo $remote|sed 's=origin/=='` `echo $remote`; done
Perintah satu baris ini didasarkan pada versi-versi itu dalam jawaban lain di halaman ini, tetapi bisa dibilang lebih baik karena:
- itu benar mengatur pelacakan cabang, tidak seperti beberapa varian yang lebih tua dari perintah ini pada halaman ini yang hanya menyediakan satu parameter untuk --track dan dengan demikian setiap cabang berakhir master pelacakan - tidak baik
- menamai cabang lokal tanpa awalan "asal /" yang secara pribadi tidak saya inginkan - dan konsisten dengan apa yang terjadi ketika Anda checkout cabang secara normal.
- lewati master pelacakan karena itu sudah terjadi
- sebenarnya tidak checkout apa pun dengan cepat
- menghindari tersandung -> pada output dari git branch -r
Selanjutnya, jika Anda mengganti asal, ganti tautan ke asal lama dan arahkan ke remote baru. Pastikan Anda membuat remote baru terlebih dahulu, menggunakan bitbucket / github GUI, tetapi jangan menambahkan file apa pun ke dalamnya atau akan ada masalah penggabungan. Misalnya
git remote set-url origin git@bitbucket.org:YOUR/SOMEREPO.git
Sekarang dorong. Perhatikan bahwa perintah kedua diperlukan untuk mendorong tag juga:
git push -u --all origin
git push --tags origin