คำตอบสั้น ๆ
หากคุณชอบที่จะชัดเจนและใช้-uตัวเลือกเมื่อจำเป็น แต่ไม่ต้องการพิมพ์ทั้งหมด:
git push -u origin foo
จากนั้นคุณสามารถใช้นามแฝงต่อไปนี้:
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
และพิมพ์:
git push-u
คำตอบยาว
โดยปกติแล้วความต้องการ-u(ชวเลข--set-upstream) คือเมื่อเราเพิ่งสร้างสาขาในพื้นที่ใหม่และยอมรับและเราต้องการผลักดันให้ต้นน้ำ ที่เก็บระยะไกลยังไม่มีสาขาใหม่ดังนั้นเราจำเป็นต้องบอกให้ git สร้างและติดตามสาขาระยะไกลก่อนที่จะกดคอมมิต สิ่งนี้จำเป็นสำหรับการผลักดันครั้งแรกในสาขาเท่านั้น นี่คือสถานการณ์ทั่วไป:
git checkout -b foo # Create local branch
git commit -m "Foo" # Create local commit
git push -u origin foo # Create and track remote branch, and push commit
git commit -m "Bar" # Create local commit
git push # Push commit
โดยส่วนตัวแล้วฉันชอบที่จะต้องมีความชัดเจนgit push -uเมื่อสร้างสาขาระยะไกล: มันเป็นการดำเนินการที่สำคัญมากโดยแบ่งปันสาขาใหม่ทั้งหมดให้กับโลก
git push -u origin fooแต่ผมเกลียดที่เราจะต้องชัดเจนในการเขียน ไม่เพียง แต่เป็นความเจ็บปวดในการพิมพ์ แต่ที่สำคัญกว่านั้นมันค่อนข้างผิดพลาด! เกิดข้อผิดพลาดได้ง่ายเมื่อพิมพ์ชื่อสาขาและสาขาระยะไกลใหม่จะไม่มีชื่อเดียวกับสาขาในพื้นที่ของคุณ! ในกรณีส่วนใหญ่คุณต้องการให้ที่เก็บต้นน้ำเป็นoriginและสาขาต้นน้ำมีชื่อเดียวกับสาขาในพื้นที่ของคุณ
ดังนั้นฉันจึงใช้นามแฝงต่อไปนี้ในของฉัน.gitconfigซึ่งเป็นส่วนย่อยของคำตอบที่ยอดเยี่ยมจาก Mark :
[alias]
push-u = !git push -u origin $(git symbolic-ref --short HEAD)
ตอนนี้เราสามารถทำสิ่งต่อไปนี้ได้ซึ่งยังชัดเจน แต่มีโอกาสเกิดข้อผิดพลาดน้อยกว่า:
git checkout -b foo # Create local branch
git commit -m "Foo" # Create local commit
git push-u # Create and track remote branch, and push commit
git commit -m "Bar" # Create local commit
git push # Push commit
push.defaultandbranch.<name>.mergeoptions ในgit-config (1) ได้หรือไม่?