ผลักดันสาขาในท้องถิ่นขึ้นสู่ GitHub


117

ฉันได้กำหนดค่า Git เพื่อที่เมื่อฉันเรียกใช้git pushมันจะดันการเปลี่ยนแปลงไปยังที่เก็บ GitHub ของฉัน จนถึงตอนนี้ฉันมีสาขาหลักเท่านั้น

อย่างไรก็ตามตอนนี้ฉันได้สร้างสาขาในพื้นที่แล้วและมุ่งมั่นที่จะใช้:

git checkout -b my_new_branch
git commit

สิ่งที่ฉันต้องการทำตอนนี้คือผลักดันการเปลี่ยนแปลงของฉันในสาขานี้ไปยัง GitHub ฉันแค่กดคอมไพล์หรือเปล่า?

เมื่อฉันตั้งค่าครั้งแรกฉันได้รัน:

git config push.default current

คำถามของคุณคืออะไร? ด้วยการpush.defaultตั้งค่าแบบนั้นใช่git pushจะผลักสาขาปัจจุบันไปยังจุดเริ่มต้นซึ่งเป็น repo github ของคุณโดยสมมติว่าคุณโคลนจากที่นั่น (คุณสามารถระบุรีโมตอื่นได้branch.my_new_branch.remoteหากต้องการ) คุณลองทำเช่นนี้แล้วไม่ได้ผลหรือไม่?
Cascabel

1
หากคุณต้องการให้สาขาในพื้นที่ทั้งหมดของคุณผลักดันไปยังสาขาระยะไกลเดียวกันให้ชัดเจน: git push origin HEAD: remote_branch
Ustaman Sangat

คำตอบ:


221

ฉันเชื่อว่าคุณกำลังมองหาgit push origin my_new_branchโดยสมมติว่ารีโมตต้นทางของคุณถูกกำหนดค่าให้เข้ากับที่เก็บ github ของคุณ


ผลักดันคอมไพล์ <ระยะไกล> <สาขา> ตามatlassian.com/git/tutorials/syncing/git-push
vikramvi

3
หากคุณต้องการทำงานในสาขานี้ร่วมกับผู้อื่นและด้วยเหตุนี้การดึงคอมไพล์คุณจะต้องตั้งค่าข้อมูลการติดตามสำหรับสาขาใหม่ของคุณ: git branch --set-upstream-to=origin/my_new_branch my_new_branch
gloriphobia

9

ทั้งนี้ขึ้นอยู่กับการตั้งค่าคอมไพล์ในพื้นที่ของคุณหากคุณมีสาขาที่เช็คเอาต์ซึ่งไม่ใช่สาขาที่คุณโคลนหรือสาขาที่มีอยู่ในที่ที่คุณพยายามผลักดันคอมไพล์จะไม่ผลักดันสาขาในพื้นที่ของคุณ

นี่คือข้อความที่ระบุ:

คำเตือน: push.default ไม่ได้ตั้งค่า; ค่าโดยนัยได้เปลี่ยนไปใน Git 2.0 จาก "การจับคู่" เป็น "แบบง่าย" หากต้องการบีบอัดข้อความนี้และรักษาพฤติกรรมดั้งเดิมให้ใช้:

git config --global push.default ตรงกัน

หากต้องการบีบอัดข้อความนี้และปรับใช้พฤติกรรมใหม่ตอนนี้ให้ใช้:

git config --global push.default ง่าย

เมื่อ push.default ถูกตั้งค่าเป็น 'การจับคู่' คอมไพล์จะพุชสาขาภายในไปยังสาขาระยะไกลที่มีชื่อเดียวกันอยู่แล้ว

ตั้งแต่ Git 2.0 Git จะใช้ค่าเริ่มต้นเป็นพฤติกรรม 'ง่าย' ที่อนุรักษ์นิยมซึ่งจะผลักสาขาปัจจุบันไปยังสาขาระยะไกลที่สอดคล้องกันซึ่ง 'git pull' ใช้เพื่ออัปเดตสาขาปัจจุบัน

ดู 'git help config' และค้นหา 'push.default' สำหรับข้อมูลเพิ่มเติม (โหมด 'ง่าย' ถูกนำมาใช้ใน Git 1.7.11 ใช้โหมดที่คล้ายกัน 'ปัจจุบัน' แทน 'ง่าย' หากบางครั้งคุณใช้ Git เวอร์ชันเก่า)

ร้ายแรง: สาขาปัจจุบันMyLocalBranchไม่มีสาขาต้นน้ำ หากต้องการผลักดันสาขาปัจจุบันและตั้งค่ารีโมตเป็นอัปสตรีมให้ใช้

git push --set-upstream origin MyLocalBranch


-12

หากคุณได้กำหนดค่าคอมไพล์ของคุณให้พุชไปยัง repo ต้นแบบ GitHub ของคุณไม่ว่าคุณจะอยู่ในสาขาใดก็ตามระบบจะส่งไปที่ repo ต้นแบบ GitHub ของคุณ

โปรดทราบว่าหากนักพัฒนาหลายคนทำงานในที่เก็บเดียวกันคุณอาจได้รับความขัดแย้ง


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