Tôi có một kho lưu trữ mà tôi muốn đẩy vào Bitbucket và GitHub. Điều quan trọng là kho lưu trữ của tôi được lưu trữ bởi cả hai.
Có cách nào để làm điều này trong Git không?
Tôi có một kho lưu trữ mà tôi muốn đẩy vào Bitbucket và GitHub. Điều quan trọng là kho lưu trữ của tôi được lưu trữ bởi cả hai.
Có cách nào để làm điều này trong Git không?
Câu trả lời:
Bạn có thể sử dụng nhiều kho lưu trữ từ xa với git. Nhưng tôi tin rằng bạn sẽ phải đẩy riêng vào 2 điều khiển từ xa của mình.
Ví dụ: nếu dự án của bạn hiện trỏ đến github, bạn có thể đổi tên kho lưu trữ từ xa hiện tại của mình thành github
:
$ git remote rename origin github
Sau đó, bạn có thể thêm một kho lưu trữ từ xa khác, nói bitbucket
:
$ git remote add bitbucket git@bitbucket.org:your_user/your_repo.git
Bây giờ để đẩy các thay đổi sang nhánh tương ứng trên github hoặc bitbucket, bạn có thể làm như sau:
$ git push github HEAD
$ git push bitbucket HEAD
Quy tắc tương tự cũng áp dụng cho việc kéo: bạn cần chỉ định điều khiển từ xa bạn muốn kéo:
$ git pull github your_branch
$ git pull bitbucket your_branch
.ssh/config
tệp của bạn là chìa khóa để đạt được thiết lập này. Thêm một Host github.com
và một Host bitbucket.org
để xác định cái nào IdentityFile
sẽ sử dụng. Sau đó, bạn sẽ không nhận được quyền bị từ chối khi cố gắng trao đổi qua lại giữa bitbucket và github. Hy vọng điều này sẽ giúp ai đó.
Đúng, bạn có thể làm điều đó. Bạn không phải đẩy hai lần mà chỉ cần một lần để đẩy tới cả hai kho lưu trữ từ xa. Tôi đã gặp vấn đề tương tự trước đây nên đã viết cách thực hiện ở đây. Git: Đẩy đến / Kéo từ cả Github và Bitbucket
Một số giải pháp DỄ DÀNG .
Đây là cách dễ dàng nhất để bạn có thể xoay sở, nhưng lại tốn nhiều công sức nhất để duy trì.
Chúng tôi bắt đầu bằng cách thêm điều khiển từ xa mới của chúng tôi:
$ cd myproject
$ git remote add bitbucket ssh://git@bitbucket.org/user/myproject.git
$ git push bitbucket master
Thẳng về phía trước không? Tất nhiên, ngoại trừ mỗi khi chúng tôi thực hiện bất kỳ thay đổi nào, chúng tôi cần phải đẩy đến cả “nguồn gốc” ban đầu và “bitbucket” từ xa mới của chúng tôi:
$ git push origin master
$ git push bitbucket master
Không phải là một chi phí lớn, nhưng tôi chắc chắn rằng nó sẽ được ghi lại theo thời gian. Hoặc bạn có thể tạo một `alias gpob =" git push origin master && git push bitbucket master ".
Với phương pháp này, chúng tôi sẽ thêm một URL bổ sung vào “origin” từ xa hiện có của chúng tôi:
$ cd myproject
$ git remote set-url --add origin ssh://git@bitbucket.org/user/myproject.git
$ git push origin master
Everything up-to-date
Everything up-to-date
Ít nỗ lực hơn nhiều!
Tất nhiên lớp lót bạc có một đám mây và trong trường hợp này, đó là mặc dù chúng tôi có thể đẩy đến nhiều URL đồng thời, chúng tôi chỉ có thể tìm nạp từ “origin” ban đầu (bạn có thể thay đổi điều này, nhưng điều đó nằm ngoài phạm vi của bài đăng này ).
Cuối cùng, để xem điều khiển từ xa nào sẽ được tìm nạp từ:
$ git remote -v show
Tôi đã viết blog về nó .