คุณต้องการให้ที่เก็บส่วนกลางของคุณว่างเปล่า สมมติว่าเครื่องที่ใช้งานมีชื่ออยู่static
:
$ ssh static git init --bare /git/myproject.git
พื้นที่เก็บข้อมูลเปลือยนี้เป็นจุดนัดพบกลาง: มันสำหรับการผลักดันและดึงจากไม่ใช่การพัฒนา
ทำการพัฒนาของคุณบนพื้นที่เก็บข้อมูลส่วนกลาง:
$ cd ~/src
$ git clone static:/git/myproject.git
แม้ว่าคุณจะstatic
ทำงานอยู่ในโคลน:
$ git clone /git/myproject.git
แม้ว่าคุณเพียงคนเดียวที่ทำงานในพื้นที่เก็บข้อมูลนี้ได้รับในนิสัยของการทำงานของคุณในสิ่งที่เอกสารประกอบคอมไพล์เรียกสาขาหัวข้อ ประโยชน์ทันทีของสิ่งนี้คือมันช่วยรักษาต้นแบบที่สะอาดอยู่เสมอนั่นคือคุณสามารถดึงข้อมูลจากสาขาหลักส่วนกลางของคุณไปยังที่เก็บปัจจุบันของคุณโดยไม่ต้องผสาน
ตัวอย่างเช่น:
$ git checkout -b fix-bug-in-foo
$ hack
$ git add file.c file.h
$ git commit -m "Fix ..."
นั่นอาจดูเหมือนไม่ใช่เรื่องใหญ่ แต่ให้อิสระแก่คุณในการออกจากโครงการตามที่แสดงในสาขาที่ปรุงสุกเพียงบางส่วนหรือหากความคิดดีๆของคุณกลายเป็นความล้มเหลวคุณสามารถทิ้งสาขานั้นโดยไม่ต้อง ทำลายสิ่งอื่นใดในโครงการของคุณที่ได้ทำงานในสาขาอื่นแล้ว มัลลิแกนฟรีที่ไม่มีที่สิ้นสุด!
บางทีคุณอาจกลับบ้านในคืนนั้นและเพิ่มคุณสมบัติใหม่ เช้าวันรุ่งขึ้นคุณ
$ git checkout master
$ git pull
เพื่ออัพเดตต้นแบบโลคัลของคุณเพื่อสะท้อนสิ่งที่อยู่ในที่เก็บส่วนกลาง
แต่ตอนนี้บอกว่าคุณได้แก้ไขข้อผิดพลาด foo และพร้อมที่จะรวมไว้ในสาขาหลักของคุณ ก่อนอื่นคุณต้องรวมกับการเปลี่ยนแปลงจากเมื่อคืน:
$ git checkout fix-bug-in-foo
$ git rebase master
rebase
คำสั่งทำให้ดูพื้นที่เก็บข้อมูลของคุณว่าคุณแก้ไขข้อบกพร่อง foo ที่ด้านบนของคืนที่ผ่านมาเป็นคุณลักษณะใหม่ (นี่เป็นสิ่งที่ชอบsvn update
แต่มีความยืดหยุ่นและทรงพลังมากกว่า)
ทีนี้เพื่อนำมันมาเป็นนายศูนย์กลางของคุณ:
$ git checkout master
$ git merge fix-bug-in-foo
$ git push origin master
เราปฏิบัติต่ออาจารย์เป็นพิเศษ แต่นั่นก็เป็นแค่เรื่องธรรมดา คุณสามารถแบ่งปันงานในที่เก็บสาขาต่าง ๆ ผ่านคลังเก็บข้อมูล git static
ได้อย่างง่ายดาย