คำตอบอื่น ๆ ทั้งหมดพูดถึง "ต้นน้ำ" (สาขาที่คุณดึงออกมา)
แต่สาขาในท้องถิ่นสามารถผลักดันไปยังสาขาที่แตกต่างจากสาขาที่ดึงมา
master
อาจไม่ส่งไปยังสาขาการติดตามระยะไกล " origin/master
" ต้นน้ำสาขาอาจจะมีแต่ก็สามารถผลักดันสาขาการติดตามระยะไกลหรือแม้กระทั่ง
เหล่านั้นถูกกำหนดโดยสำหรับสาขาปัจจุบันพร้อมกับค่า
master
origin/master
origin/xxx
anotherUpstreamRepo/yyy
branch.*.pushremote
global remote.pushDefault
มันเป็นที่ที่ห่างไกลการติดตามสาขาซึ่งนับเมื่อแสวงหากระทำ unpushed: หนึ่งที่แทร็คbranch at the remote
ที่สาขาในประเทศจะได้รับการผลักดันให้ สามารถอีกครั้งหรือแม้กระทั่ง
branch at the remote
origin/xxx
anotherUpstreamRepo/yyy
Git 2.5+ (Q2 2558) แนะนำทางลัดใหม่สำหรับสิ่งนั้น: <branch>@{push}
ดูกระทำ 29bc885 , กระทำ 3dbe9db , กระทำ adfe5d0 , กระทำ 48c5847 , กระทำ a1ad0eb , กระทำ e291c75 , กระทำ 979cb24 , กระทำ 1ca41a1 , กระทำ 3a429d0 , กระทำ a9f9f8c , กระทำ 8770e6f , กระทำ da66b27 , กระทำ f052154 , กระทำ 9e3751d , กระทำ ee2499f [ทั้งหมดจาก 21 พฤษภาคม 2015] และกระทำ e41bf35 [1 พฤษภาคม 2015] โดยเจฟฟ์คิง (peff
)
(ผสานโดยJunio C Hamano - gitster
-ในการกระทำ c4a8354 , 5 มิถุนายน 2015)
Commit adfe5d0 อธิบาย:
sha1_name
: ใช้@{push}
ชวเลข
ในเวิร์กโฟลว์รูปสามเหลี่ยมแต่ละสาขาอาจมีจุดสนใจที่แตกต่างกันสองแบบ: @{upstream}
โดยปกติแล้วคุณจะดึงจากและปลายทางที่ปกติคุณจะกด ไม่มีการจดชวเลขสำหรับหลัง แต่มีประโยชน์ที่จะมี
ตัวอย่างเช่นคุณอาจต้องการทราบว่าคุณยังไม่ได้ทำอะไรผลักดัน :
git log @{push}..
หรือเป็นตัวอย่างที่ซับซ้อนยิ่งขึ้นลองจินตนาการว่าโดยปกติคุณจะดึงการเปลี่ยนแปลงจากorigin/master
(ซึ่งคุณตั้งไว้เป็นของคุณ@{upstream}
) และผลักดันการเปลี่ยนแปลงไปสู่ทางแยกส่วนตัวของคุณ (เช่นตามmyfork/topic
)
คุณสามารถผลักดันให้แยกจากเครื่องหลายเครื่องกำหนดให้คุณรวมการเปลี่ยนแปลงจากปลายทางการผลักดันแทนที่จะเป็นอัปสตรีม
ด้วยแพตช์นี้คุณสามารถทำได้:
git rebase @{push}
แทนที่จะพิมพ์ชื่อเต็ม
Commit 29bc885เพิ่ม:
for-each-ref
: ยอมรับ%(push)
รูปแบบ ""
เช่นเดียวกับที่เรามี " %(upstream)
" เพื่อรายงาน " @{upstream}
" สำหรับการอ้างอิงแต่ละครั้งโปรแกรมแก้ไขนี้จะเพิ่ม " %(push)
" เพื่อจับคู่ " @{push}
"
รองรับการปรับเปลี่ยนรูปแบบการติดตามเดียวกันกับอัปสตรีม (เพราะคุณอาจต้องการทราบเช่นสาขาใดที่มีความมุ่งมั่นที่จะผลักดัน )
หากคุณต้องการดูจำนวนสาขาที่สาขาของคุณอยู่ข้างหน้า / หลังเปรียบเทียบกับสาขาที่คุณกำลังผลักดัน:
git for-each-ref --format="%(refname:short) %(push:track)" refs/heads
git log @{push}..
คือ ดูว่าทางลัดใหม่@{push}
(อ้างอิงสาขาการติดตามระยะไกลที่คุณกำลังกด) ในคำตอบของฉันด้านล่าง