Với GitHub, làm cách nào để đẩy tất cả các chi nhánh khi thêm repo hiện có?


125

Tôi đã tạo một repo GitHub mới - tôi muốn đặt repo hiện tại của mình ở đó.
Tôi làm theo hướng dẫn:

cd existing_git_repo
git remote add origin git@github.com:acme-org/myprj.git
git push origin master

Điều này chỉ đẩy nhánh chủ đến GitHub.
Làm cách nào để đẩy mọi thứ (bao gồm tất cả các chi nhánh) trong repo hiện tại của tôi sang repo GitHub mới của tôi?


Lưu ý: bạn cũng có git push --follow-tagsvới git 1.8.3+ (tháng 5 năm 2013). Xem câu trả lời được chỉnh sửa của tôi dưới đây
VonC

Câu trả lời:


237

Lưu ý: git đẩy - sẽ không đẩy các thẻ của bạn, chỉ các chi nhánh của bạn.

git push --all
git push --tags

sẽ thực sự đẩy tất cả mọi thứ . Xem thêm " Thiết lập git để kéo và đẩy tất cả các nhánh ".
Đừng quên --dry-runtùy chọn để thực hiện một số thử nghiệm trước khi thực sự đẩy mọi thứ.
Xem thêm GitHub trợ giúp " Làm việc với điều khiển từ xa " để đặt nguồn gốc của bạn vào repo từ xa GitHub của bạn.


Như đã đề cập trong phần " Làm thế nào để tạo ra git đẩy git đẩy bao gồm các thẻ trong một nhánh? ", Git 1.8.3+ (tháng 5 năm 2013) đã giới thiệu:

git push --follow-tags

Điều này sẽ không đẩy tất cả các thẻ, nhưng chỉ những thẻ có thể truy cập từ (các) chi nhánh bạn đang đẩy.

Điều đó có thể giúp duy trì hoạt động đó (đẩy các cam kết thẻ) được thực hiện bằng một lệnh thay vì hai lệnh.

Git 2.4.1+ (quý 2 năm 2015) sẽ giới thiệu tùy chọn push.followTags.


Điều này dường như không hoạt động khi bạn muốn đẩy sang một điều khiển từ xa khác (thay vì nguồn gốc), nó chỉ đẩy chi nhánh hiện tại của tôi.
Aloys

@ Hợp kim sẽ phụ thuộc vào phiên bản git của bạn và chính sách đẩy mặc định hiện tại: stackoverflow.com/questions/10002239/
VonC

Nếu bạn muốn đẩy các chi nhánh từ xa cũng sử dụng--mirror
BFar

18

Câu trả lời được chấp nhận không hoàn toàn đúng, hoặc ít nhất nó không hiệu quả với tôi. Tôi cũng cần chỉ định repo từ xa, vd:

git push origin --all

Chỉ định điều khiển từ xa chỉ cần thiết khi không đặt ngược dòng.
vào

yêu cầu kho lưu trữ nếu nhiều điều khiển từ xa đã được thêm vào, tôi tin ( $git remote -v)
michael

2
Để đặt theo dõi giữa các chi nhánh địa phương và từ xa -u có thể được thêm vào:git push -u origin --all
Drenai
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.