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