Dengan GitHub, bagaimana cara mendorong semua cabang saat menambahkan repo yang sudah ada?

125

Saya membuat repo GitHub baru - Saya ingin meletakkan repo yang ada di sana.
Saya mengikuti instruksi:

cd existing_git_repo
git remote add origin [email protected]:acme-org/myprj.git
git push origin master

Ini hanya mendorong cabang master ke GitHub.
Bagaimana cara mendorong semua (termasuk semua cabang) di repo saya yang ada ke repo GitHub baru saya?

pemuda
sumber
Catatan: Anda juga memiliki git push --follow-tagsgit 1.8.3+ (Mei 2013). Lihat jawaban saya yang diedit di bawah ini
VonC

Jawaban:

237

Catatan: git push - semua tidak akan mendorong tag Anda, hanya cabang Anda.

git push --all
git push --tags

akan mendorong segalanya . Lihat juga " Mengatur git untuk menarik dan mendorong semua cabang ".
Jangan lupa --dry-runopsi untuk melakukan beberapa tes sebelum benar-benar mendorong semuanya.
Lihat juga bantuan GitHub " Bekerja dengan remote " untuk menyetel asal Anda ke repo jarak jauh GitHub Anda.


Seperti yang disebutkan dalam " Bagaimana cara membuat“ git push ”menyertakan tag di dalam cabang? ", Git 1.8.3+ (Mei 2013) diperkenalkan:

git push --follow-tags

Ini tidak akan mendorong semua tag, tetapi hanya yang dapat diakses dari cabang HEAD (s) yang Anda dorong.

Itu dapat membantu menjaga operasi itu (mendorong komit dan tag) dilakukan dengan satu perintah, bukan dua.

Git 2.4.1+ (Q2 2015) akan memperkenalkan opsinya push.followTags.

VonC
sumber
Ini tampaknya tidak berfungsi ketika Anda ingin mendorong ke remote lain (bukan asal), itu hanya mendorong cabang saya saat ini.
Aloys
@Aloys yang akan bergantung pada versi git Anda dan kebijakan push default saat ini: stackoverflow.com/questions/10002239/…
VonC
Jika Anda ingin mendorong cabang jarak jauh juga gunakan--mirror
BFar
18

Jawaban yang diterima kurang tepat, atau setidaknya tidak berhasil untuk saya. Saya perlu menentukan repo jarak jauh juga, misalnya:

git push origin --all
Iain Hunter
sumber
Menentukan remote hanya diperlukan saat upstream tidak disetel.
aross
repositori diperlukan jika beberapa remote telah ditambahkan, saya percaya ( $git remote -v)
michael
2
Untuk mengatur pelacakan antara cabang lokal dan jarak jauh -u dapat ditambahkan:git push -u origin --all
Drenai