5 phút đọc

Origin vs Upstream

Origin vs Upstream

originupstream chỉ là tên remote theo quy ước, không phải khái niệm đặc biệt của Git. Hiểu vai trò mỗi cái giúp bạn cộng tác qua fork đúng cách.

Origin

Origin là tên remote mặc địnhgit clone tự tạo, trỏ tới nơi bạn đã clone. Trong mô hình fork, origin thường là fork của bạn trên server — nơi bạn có quyền push.

Upstream

Upstream (theo quy ước này) là repo gốc mà bạn fork ra. Bạn thêm nó để kéo commit mới về sync fork, nhưng thường không có quyền push lên đó.

# origin = fork của bạn (clone tự tạo)
# Thêm upstream = repo gốc
git remote add upstream https://github.com/goc/repo.git

# Sync: tải từ gốc rồi gộp vào local
git fetch upstream
git merge upstream/main

So sánh

originupstream
Thường trỏ tớiFork của bạnRepo gốc
Quyền pushThường không
Dùng đểĐẩy code, mở PRKéo về để sync fork

Lưu ý

"upstream" còn có nghĩa thứ hai: nhánh upstream của một tracking branch (xem khái niệm Tracking Branch). Đừng nhầm tên remote upstream với upstream branch.

Cách nhớ nhanh

origin = nhà bạn (đẩy đồ vào thoải mái). upstream = nhà gốc ở thượng nguồn (chỉ lấy nước chảy xuống = kéo update về, không đẩy ngược lên).