ขั้นแรกคัดลอกที่เก็บGitระยะไกลและcdไปที่:
$ git clone git://example.com/myproject
$ cd myproject
ถัดไปดูสาขาในพื้นที่เก็บข้อมูลของคุณ:
$ git branch
* master
แต่มีสาขาอื่นซ่อนตัวอยู่ในที่เก็บของคุณ! คุณสามารถดูสิ่งเหล่านี้ได้โดยใช้-a
ธง:
$ git branch -a
* master
remotes/origin/HEAD
remotes/origin/master
remotes/origin/v1.0-stable
remotes/origin/experimental
หากคุณเพียงต้องการที่จะมองอย่างรวดเร็วที่สาขาต้นน้ำคุณสามารถตรวจสอบได้โดยตรง:
$ git checkout origin/experimental
แต่ถ้าคุณต้องการทำงานในสาขานั้นคุณจะต้องสร้างสาขาการติดตามในพื้นที่ซึ่งดำเนินการโดยอัตโนมัติโดย:
$ git checkout experimental
และคุณจะเห็น
Branch experimental set up to track remote branch experimental from origin.
Switched to a new branch 'experimental'
บรรทัดสุดท้ายนั้นทำให้บางคน: "สาขาใหม่" - ใช่มั้ย ความหมายจริงๆคือสาขานั้นนำมาจากดัชนีและสร้างขึ้นในเครื่องสำหรับคุณ ก่อนหน้านี้สายเป็นจริงข้อมูลมากขึ้นตามที่บอกคุณว่าสาขาจะถูกสร้างขึ้นมาเพื่อติดตามสาขาที่ห่างไกลซึ่งมักจะหมายถึงแหล่งที่มา / สาขา branch_name
ตอนนี้ถ้าคุณดูสาขาท้องถิ่นของคุณนี่คือสิ่งที่คุณจะเห็น:
$ git branch
* experimental
master
git remote
จริงๆคุณสามารถติดตามมากกว่าหนึ่งพื้นที่เก็บข้อมูลระยะไกลโดยใช้
$ git remote add win32 git://example.com/users/joe/myproject-win32-port
$ git branch -a
* master
remotes/origin/HEAD
remotes/origin/master
remotes/origin/v1.0-stable
remotes/origin/experimental
remotes/win32/master
remotes/win32/new-widgets
เมื่อมาถึงจุดนี้สิ่งต่าง ๆ ก็เริ่มค่อนข้างบ้าคลั่งดังนั้นgitk
โปรดลองดูว่าเกิดอะไรขึ้น:
$ gitk --all &
git branch -a
) แสดงให้คุณเห็นถึงสาขาในรีโมท แต่ถ้าคุณพยายามตรวจสอบสิ่งเหล่านั้นคุณจะอยู่ในสถานะ 'HEAD HEAD' คำตอบถัดไป (upvotes มากที่สุดอันดับที่สอง) ตอบคำถามที่แตกต่างกัน (เพื่อปัญญา: วิธีดึงกิ่งไม้ทั้งหมดและอีกครั้งสิ่งนี้ใช้ได้สำหรับผู้ที่คุณติดตามในพื้นที่เท่านั้น) ความคิดเห็นหลายข้อชี้ให้เห็นว่าคุณสามารถแยกgit branch -a
ผลลัพธ์ด้วยเชลล์สคริปต์ที่จะติดตามสาขาระยะไกลทั้งหมด สรุป: ไม่มีวิธีการดั้งเดิมในการทำสิ่งที่คุณต้องการและอาจไม่ใช่ความคิดที่ยอดเยี่ยม