ความแตกต่างระหว่างorigin
และupstream
บนGitHubคืออะไร?
เมื่อgit branch -a
คำสั่งเสร็จสิ้นบางสาขาจะมีคำนำหน้าเป็นorigin
( remotes/origin/..
) ในขณะที่บางคำสั่งมีคำนำหน้าเป็นupstream
( remotes/upstream/..
)
ความแตกต่างระหว่างorigin
และupstream
บนGitHubคืออะไร?
เมื่อgit branch -a
คำสั่งเสร็จสิ้นบางสาขาจะมีคำนำหน้าเป็นorigin
( remotes/origin/..
) ในขณะที่บางคำสั่งมีคำนำหน้าเป็นupstream
( remotes/upstream/..
)
คำตอบ:
สิ่งนี้ควรเข้าใจในบริบทของส้อม GitHub (ที่คุณแยก repo GitHub บน GitHub ก่อนที่จะทำการคัดแยกส้อมนั้นในเครื่อง)
upstream
โดยทั่วไปหมายถึงธุรกรรมซื้อคืนเดิมที่คุณได้แยกdownstream
"และ" upstream
" " สำหรับupstream
คำศัพท์เพิ่มเติม)origin
เป็นทางแยกของคุณ: repo ของคุณเองบน GitHub, โคลนของ repo ดั้งเดิมของ GitHubจากหน้า GitHub:
เมื่อ repo ถูกโคลนมันจะมีรีโมทเริ่มต้นที่เรียก
origin
ว่าชี้ไปที่ทางแยกของคุณบน GitHub ไม่ใช่ repo ดั้งเดิมที่ถูกแยกจาก
ในการติดตาม repo ดั้งเดิมคุณต้องเพิ่มชื่อรีโมตอื่นupstream
git remote add upstream git://github.com/<aUser>/<aRepo.git>
(พร้อมaUser/aRepo
การอ้างอิงสำหรับผู้สร้างและที่เก็บต้นฉบับที่คุณแยกไว้)
คุณจะใช้upstream
เพื่อดึงข้อมูลจาก repo ดั้งเดิม (เพื่อให้สำเนาภายในเครื่องของคุณตรงกับโครงการที่คุณต้องการมีส่วนร่วม)
git fetch upstream
( โดยค่าเริ่มต้นgit fetch
จะดึงจากคนเดียวorigin
ซึ่งไม่ใช่สิ่งที่ต้องการที่นี่)
คุณจะใช้origin
ในการดึงและดันเนื่องจากคุณสามารถมีส่วนร่วมในพื้นที่เก็บข้อมูลของคุณเอง
git pull
git push
(อีกครั้งโดยไม่มีพารามิเตอร์จะใช้ 'ต้นกำเนิด' เป็นค่าเริ่มต้น)
upstream
โดยทั่วไปคืออะไร: stackoverflow.com/questions/2739376/…