2012-10-18 37 views
65

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 đối với kho lưu trữ của tôi là được lưu trữ bởi cả hai.Làm thế nào để sử dụng Bitbucket và GitHub cùng một lúc cho một dự án?

Có cách nào để thực hiện việc này trong Git không?

+3

Điều này có vẻ rất hữu ích. Đặc biệt khi một kho lưu trữ bị hỏng. Tại thời điểm bitbucket là xuống và tôi về cơ bản không thể làm công việc của tôi. – imranal

Trả lời

82

Bạn có thể sử dụng nhiều kho lưu trữ từ xa với git. Nhưng bạn sẽ phải đẩy riêng vào 2 điều khiển từ xa mà tôi tin.

Ví dụ, nếu dự án của bạn hiện đang trỏ tới github, bạn có thể đổi tên kho từ xa hiện tại của bạn để github:

$ git remote rename origin github 

Sau đó bạn có thể thêm một kho lưu trữ từ xa, nói bitbucket:

$ git remote add bitbucket [email protected]:your_user/your_repo.git 

Bây giờ, để đẩy các thay đổi cho nhánh tương ứng trên github hoặc bitbucket, bạn có thể thực hiện điều này:

$ git push github HEAD 
$ git push bitbucket HEAD 

Cùng quy tắc áp dụng cho kéo: bạn cần phải xác định từ xa bạn muốn kéo từ:

$ git pull github your_branch 
$ git pull bitbucket your_branch 
25

Vâng, bạn có thể làm điều đó. Bạn không cần phải đẩy hai lần nhưng chỉ một lần để đẩy tới cả hai kho lưu trữ từ xa. Tôi đã có cùng một vấn đề trước khi viết như thế nào để làm điều đó ở đây. Git: Push to/Pull from Both Github and Bitbucket

+1

Bài đăng hay! Nó sẽ là tốt để bao gồm một mùa hè ở đây nếu bạn có thể. – OneHoopyFrood

17

Một vài giải pháp EASY.

Nhiều điều khiển từ xa đẩy (và lấy) một cách độc lập

Đây là đơn giản nhất để có được đầu của bạn xung quanh, nhưng những nỗ lực nhất để duy trì.

Chúng tôi bắt đầu bằng cách thêm từ xa mới của chúng tôi:

$ cd myproject 
$ git remote add bitbucket ssh://[email protected]/user/myproject.git 
$ git push bitbucket master 

thẳng về phía trước không? Trừ tất nhiên mỗi lần chúng tôi cam kết bất kỳ thay đổi, chúng ta cần phải đẩy cho cả hai ban đầu “nguồn gốc” của chúng tôi và chúng tôi mới “bitbucket” từ xa:

$ git push origin master 
$ git push bitbucket master 

Không phải là một chi phí khổng lồ, nhưng tôi chắc chắn rằng nó sẽ grate trên thời gian. Hoặc bạn có thể tạo một `bí danh gpob =" git push origin master & & git push bitbucket master ".

Độc thân từ xa với nhiều URL đẩy (và lấy) liên tiếp

Với phương pháp này, chúng ta sẽ thêm một URL bổ sung để “nguồn gốc” hiện từ xa của chúng tôi:

$ cd myproject 
$ git remote set-url --add origin ssh://[email protected]/user/myproject.git 
$ git push origin master 
Everything up-to-date 
Everything up-to-date 

Ít hơn nhiều cố gắng!

Lớp lót bạc có một đám mây, và trong trường hợp này, trong khi chúng tôi có thể đẩy đồng thời nhiều URL, chúng tôi chỉ có thể tìm nạp từ “nguồn gốc” ban đầu (bạn có thể thay đổi điều này, nhưng đó là phạm vi cho bài đăng này).

Cuối cùng, để xem từ xa sẽ được lấy từ:

$ git remote -v show 

tôi blogged about it là tốt.

Các vấn đề liên quan