2012-02-13 32 views
222

Sự khác biệt giữa originupstream trên GitHub là gì?Sự khác biệt giữa nguồn gốc và luồng trên GitHub là gì?

Khi một lệnh git branch -a được thực hiện, một số ngành có một tiền tố của origin (remotes/origin/..) trong khi những người khác có một tiền tố của upstream (remotes/upstream/..).

+1

liên quan: [Định nghĩa về "hạ lưu" và "ngược dòng"] (https://stackoverflow.com/q/2739376/465053) trong git. – RBT

Trả lời

468

này nên được hiểu trong bối cảnh GitHub forks (nơi bạn có một ngã ba repo GitHub tại GitHub trước khi nhân bản mà ngã ba địa phương)

  • upstream thường dùng để chỉ repo gốc mà bạn đã chia hai
    (xem thêm "Definition of “downstream” and “upstream" để biết thêm chi tiết về upstream thời hạn)
  • origin là ngã ba của bạn: repo của riêng bạn trên GitHub, bản sao của repo gốc của GitHub

Từ trang GitHub:

Khi một repo được nhân bản vô tính, nó có một mặc định từ xa gọi origin trỏ đến ngã ba của bạn trên GitHub, không phải là repo gốc nó được chia hai từ.
Để theo dõi các repo ban đầu, bạn cần phải thêm một điều khiển từ xa có tên upstream

git remote add upstream git://github.com/user/repo.git 

Bạn sẽ sử dụng upstream để lấy từ repo gốc (theo thứ tự để giữ bản sao cục bộ của bạn đồng bộ với dự án bạn muốn đóng góp).

git fetch upstream 

(một mình git fetch sẽ lấy từ origin theo mặc định, mà không phải là những gì cần thiết ở đây)

Bạn sẽ sử dụng origin để kéo và đẩy vì bạn có thể đóng góp cho repo của riêng bạn.

git pull 
gut push 

(một lần nữa, không có tham số, 'nguồn gốc' được sử dụng bởi mặc định)

Bạn sẽ đóng góp trở lại upstream repo bằng cách làm một pull request.

fork and upstream

+5

Nó cũng giúp biết những gì 'upstream' nói chung là: http://stackoverflow.com/questions/2739376/definition-of-downstream-and-upstream/2749166#2749166 – VonC

+0

Nó là đáng nói đến trong bối cảnh của github nó có ý nghĩa hơn có nguồn gốc là master-repo và sử dụng tên người dùng github làm tên từ xa cho các nhánh của bạn và các loại khác. Các công cụ như defunkt.io/hub thực hiện điều này và làm việc với các kho lưu trữ và cộng tác trên các dĩa đồng bộ hơn nhiều. –

+2

@MaxRydahlAndersen đúng, nhưng tôi thích sử dụng Git mà không có trình bao bọc, vì vậy tôi sẽ giữ quy ước đó (ngược dòng so với nguồn gốc) ngay bây giờ. – VonC

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