ลองสิ่งนี้ในที่aliceเก็บของคุณ(ก่อนกด):
git config push.default tracking
git config --global …หรือกำหนดค่าเป็นค่าเริ่มต้นสำหรับผู้ใช้ของคุณด้วย
git pushทำค่าเริ่มต้นเป็นที่originเก็บ (ซึ่งโดยปกติคือที่เก็บซึ่งคุณโคลนที่เก็บปัจจุบัน) แต่มันไม่ได้เป็นค่าเริ่มต้นที่จะผลักสาขาปัจจุบัน - มันเป็นค่าเริ่มต้นที่จะผลักดันสาขาที่มีอยู่ในที่เก็บทั้งแหล่งที่มาและที่เก็บปลายทาง
push.defaultตัวแปรกำหนดค่า (ดูGit-config (1) ) การควบคุมสิ่งที่git pushจะผลักดันเมื่อมันไม่ได้รับการขัดแย้งใด ๆ “refspec” (บางสิ่งบางอย่างคือหลังจากชื่อพื้นที่เก็บข้อมูล) ค่าเริ่มต้นจะให้พฤติกรรมตามที่อธิบายไว้ข้างต้น
นี่คือค่าที่เป็นไปได้สำหรับpush.default:
nothing
สิ่งนี้บังคับให้คุณจัดหา“ ผู้ชี้ขาด”
matching(ค่าเริ่มต้น)
สิ่งนี้จะผลักดันกิ่งไม้ทั้งหมดที่มีอยู่ในแหล่งเก็บข้อมูลต้นทางและที่เก็บปลายทาง
สิ่งนี้เป็นอิสระอย่างสมบูรณ์จากสาขาที่เช็คเอาท์
upstreamหรือtracking
(ค่าทั้งสองมีความหมายเหมือนกันในภายหลังถูกคัดค้านเพื่อหลีกเลี่ยงความสับสนกับสาขา "การติดตามระยะไกล" อดีตถูกนำมาใช้ใน 1.7.4.2 ดังนั้นคุณจะต้องใช้หลังถ้าคุณใช้ Git 1.7.3.1 )
เหล่านี้ผลักสาขาปัจจุบันไปยังสาขาที่ระบุโดยการกำหนดค่า“ upstream”
current
สิ่งนี้จะพุชสาขาปัจจุบันไปยังสาขาที่มีชื่อเดียวกันที่ที่เก็บปลายทาง
ท้ายสุดทั้งสองนี้เหมือนกันสำหรับกรณีทั่วไป (เช่นการทำงานกับต้นแบบท้องถิ่นซึ่งใช้ต้นกำเนิด / ต้นแบบเป็นต้นน้ำ) แต่จะแตกต่างกันเมื่อสาขาท้องถิ่นมีชื่อแตกต่างจากสาขา "ต้นน้ำ":
git checkout master
# hack, commit, hack, commit
# bug report comes in, we want a fix on master without the above commits
git checkout -b quickfix origin/master # "upstream" is master on origin
# fix, commit
git push
ด้วยpush.defaultเท่ากับupstream(หรือtracking) การผลักดันจะไปorigin's ต้นแบบสาขา เมื่อมันมีค่าเท่ากับcurrentผลักดันจะไปorigin's QuickFIXสาขา
matchingการตั้งค่าจะอัปเดตbareเป็นหลักในสถานการณ์ของคุณหลังจากที่ได้รับการจัดตั้งขึ้น เพื่อสร้างมันคุณสามารถใช้git push origin masterครั้งเดียว
อย่างไรก็ตามการupstreamตั้งค่า (หรืออาจcurrent) ดูเหมือนว่าอาจเป็นการจับคู่ที่ดีกว่าสำหรับสิ่งที่คุณคาดว่าจะเกิดขึ้นดังนั้นคุณอาจต้องการลอง:
# try it once (in Git 1.7.2 and later)
git -c push.default=upstream push
# configure it for only this repository
git config push.default upstream
# configure it for all repositories that do not override it themselves
git config --global push.default upstream
(อีกครั้งถ้าคุณยังใช้ Git ก่อน 1.7.4.2 คุณจะต้องใช้trackingแทนupstream)