ฉันได้รับข้อความนี้จาก Git:
คุณขอให้ดึงจาก 'ต้นทาง' ระยะไกล แต่ไม่ได้ระบุสาขา เนื่องจากนี่ไม่ใช่รีโมตที่กำหนดค่าเริ่มต้นสำหรับสาขาปัจจุบันของคุณคุณต้องระบุสาขาในบรรทัดคำสั่ง
ใครช่วยอธิบายหน่อย และที่สำคัญจะแก้ไขอย่างไร?
ฉันได้รับข้อความนี้จาก Git:
คุณขอให้ดึงจาก 'ต้นทาง' ระยะไกล แต่ไม่ได้ระบุสาขา เนื่องจากนี่ไม่ใช่รีโมตที่กำหนดค่าเริ่มต้นสำหรับสาขาปัจจุบันของคุณคุณต้องระบุสาขาในบรรทัดคำสั่ง
ใครช่วยอธิบายหน่อย และที่สำคัญจะแก้ไขอย่างไร?
คำตอบ:
คุณต้องบอกคอมไพล์ว่าคุณต้องการดึงสาขาใดจาก repos ระยะไกล "ต้นทาง"
ฉันเดาว่าคุณต้องการสาขาเริ่มต้น (หลัก) ดังนั้นgit pull origin masterควรแก้ไขปัญหาของคุณ
ดูgit help branch, git help pullและgit help fetch  สำหรับรายละเอียดเพิ่มเติม
git pullดึงและรวมเข้ากับสาขาปัจจุบันดังนั้นพฤติกรรมของมันจึงขึ้นอยู่กับสาขาที่ถูกเช็คเอาต์และด้วย HEAD ที่แยกออกมา (ไม่มีการเช็คเอาท์สาขา) ไม่มีทางที่จะรู้ได้ว่าจะดึงสาขาใด
                    ในการแก้ไขสมมติว่าคุณอยู่ในmasterสาขาและต้องการดึงmasterสาขาจากoriginระยะไกลใน Git เวอร์ชันใหม่ที่เพียงพอ (1.8 หรือใหม่กว่า):
git branch -u origin/master master
(แบบอะนาล็อกสำหรับสาขาอื่น ๆ และ / หรือรีโมท)
หากคุณสามารถรวมสิ่งนี้เข้ากับการผลักดันก็ยิ่งสั้นลง:
git push -u origin master
หลังจากนั้นธรรมดาgit pull/ git pushจะทำในสิ่งที่คุณคาดหวัง
ในซีรีส์ Git 1.7 git branchไม่มี-uสวิตช์ ( git pushทำเท่านั้น) และคุณต้องใช้สิ่งที่ยาวกว่านี้แทน--set-upstream:
git branch --set-upstream master origin/master
หมายเหตุ: -uการกลับรายการของการขัดแย้งเมื่อเทียบกับ ฉันคลำคำสั่งซื้อนี้มากกว่าหนึ่งครั้ง
ทั้งหมดนี้เป็นข้อสรุปสำหรับการทำสิ่งต่อไปนี้ซึ่งคุณยังสามารถทำได้อย่างชัดเจน:
git config branch.master.remote origin
git config branch.master.merge refs/heads/master
ก่อน 1.7 คุณต้องทำแบบนี้
git branch --set-upstream master origin/master
                    -uคือตัวเลือกนี้ไม่มีเอกสารgit branchในเวอร์ชัน 1.8.5.3 ของฉันทำให้เอกสารของคุณมีความสำคัญมากยิ่งขึ้น และตามที่คุณทราบตัวเลือกนี้ไม่สามารถใช้งานได้ในเวอร์ชัน 1.7 * เนื่องจาก-uย่อมา--set-upstreamจากคำสั่งของข้อโต้แย้งไม่ควรย้อนกลับอย่างที่คุณทำ--set-upstreamเนื่องจากความคิดเห็นของ @ EvanDonovan?
                    git branch -u origin/master master) มันทำงานตามที่คาดหวัง / ตั้งใจไว้สำหรับฉัน: "Branch master set up to track remote branch master from origin"
                    -uสวิทช์เป็นจริงไม่ได้เป็นรูปแบบสั้น --set-upstreamๆ --set-upstreamคำสั่งของการขัดแย้งเป็นสิ่งที่ตรงกันข้ามอย่างมีประสิทธิภาพจากเพื่อให้ ฉันคิดว่าในภายหลังมีการเปิดตัว--set-upstream-to(สังเกต "-to") ซึ่ง-uตอนนี้เป็นรูปแบบสั้น ๆ ของ
                    ข้อความบอกว่ามันเกี่ยวกับอะไร สาขาปัจจุบันของคุณจะไม่เกี่ยวข้องกับ (ไม่ติดตาม) สาขาใด ๆ ในแหล่งกำเนิด คอมไพล์เลยไม่รู้จะดึงอะไร
จะทำอย่างไร? ขึ้นอยู่กับ ...
ในสถานการณ์ปกติส่วนใหญ่คุณกำลังดำเนินการxyzสาขาในพื้นที่ซึ่งแตกแขนงมาจากมาสเตอร์ซึ่งโคลนมาจากต้นแบบของแหล่งกำเนิด วิธีการปกติในการแก้ไขก็คือการเปลี่ยนไปใช้ต้นแบบและดึงการประสานกับแหล่งที่มาและจากนั้นกลับมาที่xyzrebase masterและ
แต่ในสถานการณ์ของคุณคุณอาจต้องการทำอย่างอื่น เราไม่สามารถทราบได้หากไม่ทราบรายละเอียดของสาขาและรีโมทของคุณและวิธีที่คุณต้องการใช้