ความหมายของ 'ต้นกำเนิด' ใน 'git push origin master' คืออะไร


99

เมื่อฉันวิ่ง:

git push origin master

... ความหมายของoriginบริบทนี้คืออะไร?


7
ดูในบทแนะนำ The Git - "เมื่อคุณทำงานในกลุ่มเล็ก ๆ ที่มีความสัมพันธ์ใกล้ชิดกันการโต้ตอบกับที่เก็บเดียวกันซ้ำแล้วซ้ำเล่าไม่ใช่เรื่องแปลกการกำหนดชวเลขที่เก็บระยะไกลจะช่วยให้ง่ายขึ้น" หากคุณไม่ทำเช่นนั้นระบบจะใช้จุดเริ่มต้นตามค่าเริ่มต้น
sakisk

1
โพสต์ที่เกี่ยวข้อง - "ต้นกำเนิด" ใน Git คืออะไร
RBT

คำตอบ:


76

originเป็นชื่อดีฟอลต์ของที่เก็บ git ระยะไกลที่คุณโคลนมา ลองดู.git/refs/remotes/origin/*และ.git/configในแหล่งที่มาของคุณเพื่อดูว่า git รู้เกี่ยวกับมัน


7
ฉันจะบอกว่า "โคลนที่เก็บของคุณจาก" ไม่ "ตรวจสอบแหล่งที่มาของคุณจาก" - ประโยคหลังเป็นวลีที่ถูกระงับจาก VCS แบบรวมศูนย์และอาจทำให้ผู้เริ่มต้น DVCS เข้าใจผิดได้เล็กน้อย
Cascabel

1
แล้วคำสั่ง git remote add origin ล่ะ? จะเพิ่มจุดเริ่มต้นทำไม stackoverflow.com/a/8248542/719689
AlxVallejo

5
git remote add originหมายถึงการเพิ่มที่เก็บข้อมูลระยะไกลที่มีชื่อต้นทางซึ่งไม่มีความหมายทางเทคนิคพิเศษใด ๆ เป็นเพียงชื่อเริ่มต้นที่ใช้กันอย่างแพร่หลายสำหรับที่เก็บระยะไกลดั้งเดิม คุณสามารถใช้foobarแทนต้นกำเนิดได้หากต้องการ
skuro

1
@AlxVallejo ที่มักใช้เมื่อคุณไม่ได้โคลนจากที่เก็บนั้น แต่คุณสร้างที่เก็บในเครื่องและสร้างจุดเริ่มต้นที่อื่นเป็นที่เก็บระยะไกล
แมตต์

4
@KasunSiyambalapitiya นั่นคือชื่อสาขา ด้วยgit push origin masterคุณบอกคอมไพล์ที่จะผลักดันทุกกระทำในการตรวจสอบในขณะนี้จากสาขาในประเทศ (เช่นจากระบบไฟล์ของคุณ) เพื่อ repo ระยะไกลระบุชื่อในสาขาที่ห่างไกลของชื่อorigin master
skuro

86

git มีแนวคิดเกี่ยวกับ "รีโมต" ซึ่งเป็นเหมือนชื่อเล่นที่ใช้งานง่ายสำหรับที่เก็บดังนั้นคุณไม่จำเป็นต้องใช้ URL แบบเต็มทุกครั้งที่คุณต้องการอ้างถึงที่เก็บอื่น

originเป็นเพียงรีโมตเหมือนที่อื่น ๆ แต่คุณเห็นบ่อยมากตั้งแต่เมื่อคุณโคลนที่เก็บเป็นครั้งแรกgit cloneโดยค่าเริ่มต้นจะตั้งค่ารีโมตที่เรียกว่าoriginเพื่ออ้างถึง URL ที่คุณโคลนมา

หากคุณทำเช่นgit remote -vนั้นจะแสดงรีโมตทั้งหมดที่คุณตั้งค่าไว้ในที่เก็บในเครื่องของคุณและ URL ที่อ้างถึง (คุณจะเห็นว่ามันซับซ้อนกว่าที่ฉันได้กล่าวไว้ข้างต้นเล็กน้อยเนื่องจากรีโมตสามารถอ้างถึง URL อื่นสำหรับการพุชและดึงข้อมูล แต่คุณอาจไม่จำเป็นต้องกังวลเกี่ยวกับเรื่องนี้ :))


แล้วคำสั่ง git remote add origin ล่ะ? จะเพิ่มจุดเริ่มต้นทำไม stackoverflow.com/a/8248542/719689
AlxVallejo

2
@AlxVallejo: คุณอาจเพิ่มoriginรีโมตด้วยตัวคุณเองหากคุณเริ่มต้นที่เก็บข้อมูลด้วยตัวเองแทนที่จะทำผ่านgit cloneไฟล์.
Mark Longair

@MarkLongair สิ่งที่เราใช้masterต่อท้ายรหัส
Kasun Siyambalapitiya

35

ที่มาเป็นที่ที่คุณได้รับรหัสจากแหล่งกำเนิด -ally


3
สำหรับฉันมันไม่ใช่เรื่องตลก แต่เป็นกฎช่วยในการจำที่ต้องจำว่าต้นกำเนิดหมายถึงอะไร และอีกอย่างที่ฉันชอบคือ +1
MiGU

แม้ว่าฉันจะสนุกกับเรื่องตลกของพ่อ แต่ก็ไม่จำเป็นต้องเป็นเรื่องจริง ฉันสามารถสร้าง repo ใหม่ในพื้นที่และยอมรับโดยไม่ต้องมีความรู้เรื่องรีโมต ในภายหลังฉันสามารถสร้างจุดเริ่มต้นที่มีชื่อระยะไกลและผลักดันการกระทำทั้งหมดที่ฉันทำในเครื่องได้ Origin ไม่จำเป็นต้องเป็นแหล่งที่มาดั้งเดิมของที่เก็บ
Rob Bell

3

นี่จะช่วยได้

https://www.git-tower.com/learn/git/glossary/origin

n Git, "origin" คือชื่อชวเลขสำหรับที่เก็บระยะไกลที่โปรเจ็กต์ถูกโคลนนิ่งมา อย่างแม่นยำยิ่งขึ้นมีการใช้แทน URL ของที่เก็บเดิมและทำให้การอ้างอิงง่ายขึ้นมาก

โปรดทราบว่าต้นกำเนิดไม่ได้เป็นชื่อที่ "วิเศษ" แต่เป็นเพียงแบบแผนมาตรฐาน แม้ว่าจะเป็นการดีที่จะปล่อยให้การประชุมนี้ไม่ถูกแตะต้อง แต่คุณสามารถเปลี่ยนชื่อได้อย่างสมบูรณ์แบบโดยไม่สูญเสียฟังก์ชัน

ในตัวอย่างต่อไปนี้พารามิเตอร์ URL ของคำสั่ง "โคลน" จะกลายเป็น "ต้นทาง" สำหรับที่เก็บโลคัลที่โคลน:

git clone https://github.com/gittower/git-crash-course.git


2

จุดเริ่มต้นเป็นรีโมตที่สร้างขึ้นโดยคอมไพล์เองเมื่อคุณโคลน repo แรกเพื่อชี้ URL ที่คุณสร้างโคลน เช่นที่มา git@github.com: / PROJECT_U


0

"Origin" คือชื่อของที่เก็บระยะไกลที่คุณต้องการเผยแพร่คอมมิตของคุณ ตามแบบแผนที่เก็บระยะไกลเริ่มต้นเรียกว่า "ต้นกำเนิด" แต่คุณสามารถทำงานกับรีโมทหลายตัว (ที่มีชื่อต่างกัน) ในเวลาเดียวกันได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.