2012-04-13 20 views
5

Chúng tôi vừa thiết lập một dự án với bitbucket. Chúng tôi đặt mã 'sản xuất' [P] của chúng tôi trên một repo, và sau đó tôi tạo ra một ngã ba [m] của nó, và sau đó đồng nghiệp của tôi [C] cũng tạo ra một ngã ba của nó.Không hiểu forking

[P] 
/ \ 
[M] [C] 

Tôi đã thực hiện một số thay đổi và tạo yêu cầu kéo và chấp nhận nó, vì vậy [P] hiện có mã của tôi, [M].

Đây là nơi tôi đang bối rối. Làm thế nào [C], đồng nghiệp của tôi repo nhận được mã cập nhật?

Cảm ơn!

Trả lời

9

đồng nghiệp của bạn cần phải kéo từ P.

Nếu bạn đang làm việc trên master chi nhánh tại P, sau đó lệnh sẽ là ...

git pull origin master 
3

Lưu ý: nếu chúng ta đang thực sự nói chuyện về forking (mà là hành vi nhân bản một repo trên máy chủ bên) và nhân bản không đơn giản, sau đó giản đồ là:

   BitBucket 

    ------------[P]----------- 
    |   ^   | 
    |   |   | 
(forked) (pull request) (forked) 
    |      | 
    v      v 
    [M]      [C] 
    |      | 
----|------------------------|----- 
    | Local workstations | 
    |      | 
(git clone)    (git clone) 
    |      | 
    v      v 
[MLocal]     [CLocal] 

Nói cách khác, MC có trên các máy chủ BitBucket, không phải trên MuserCuser máy trạm cục bộ.
'origin' sẽ là số upstream repo tương ứng của MLocalCLocal, đó là M hoặc C, không P.
(Xem "What is the difference between origin and upstream", cho GitHub, mà còn áp dụng cho BitBucket)

này rất hữu ích cho Muser vì:

  • Muser có thể không muốn đẩy trực tiếp đến P (ông có thể, mặc dù ông là chủ sở hữu của P trên BitBucket), do đó ở đây, repo M hoạt động như ông "đệm"
  • Cuser không có quyền để đẩy trên P, vì vậy ông phải đến ngã ba cũng

Trong trường hợp đó, cho Cuser thấy bất kỳ bản cập nhật trên P, anh ta cần phải thêm P như một điều khiển từ xa để CLocal repo (tức là nhân bản repo địa phương của mình ngã ba ông)

git remote add P https://bitbucket.org/Puser/P 
git pull P master 

Một khi những thay đổi mới được tích hợp và được thử nghiệm tại địa phương (trên CLocal), chúng có thể được đẩy trở lại C, cùng với các diễn biến mới được giới thiệu bởi Cuser. Chỉ những thay đổi mới sẽ là một phần của một pull request, cho Muser (và P chủ sở hữu) để kiểm tra và thêm vào P.

Tương tự, Muser sẽ cần phải thêm P như một điều khiển từ xa để MLocal, để có được trở lại bất kỳ sửa đổi từ C đã được chấp nhận vào P.

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