ข้อแตกต่างระหว่าง Subversion และ Git
Subversion เป็น Centralized Source Control ส่วน Git เป็น Distributed Source Control
Subversion เวลาสั่ง Checkout ออกมาจะเอามาเฉพาะ Source Code version ล่าสุด แต่ Git จะ Clone ลงมาทั้ง Repository เลย (ดูที่คำสั่งจะเห็นว่าใช้ชื่อว่า clone ไม่ใช่ checkout) โดย code จะมาทั้ง repository เรียกว่าเป็น local repository
Git ก่อนจะ commit จะต้องทำ staging ก่อน เหมือนเป็นการเลือกว่าจะ commit file ไหนบ้าง ในการแก้ 1 ครั้งเราอาจจะแก้ 3-4 file ซึ่งเป็น 2 bug เวลา commit ก็แยก commit ผ่านการ stage file เพื่อแยกเป็น 2 commit
ข้อแตกต่างอีกอย่างก็คือ Git จะไม่มีเลข revision กำกับการ commit ในแต่ละครั้ง แต่จะเป็น hash checksum แบบนี้ d39b7814441168a63e02677a320a3e73aace0139 แทน
ข้อดีของ Git
- การแตก Branch ทำได้ง่ายมาก
- สามารถ commit ใส่ local repository ไว้ก่อน โดยไม่ต้องมี net พอมี net แล้วค่อย commit ขึ้น center repository ทำให้สามารถเอางานกลับไปทำที่บ้านเป็น virtual office ได้ หรือเครื่อง center ดับก็ยัง commit ได้
- ทำงานได้รวดเร็วกว่า subversion มาก
ทำไมถึงเปลี่ยนมาใช้ Git
- ปัญหาเดิมคือการแตก branch ทำได้ยาก และการ merge ก็ค่อนข้างวุ่นว่าย
- subversion ตัว repository กำหนด permission ยาก ตัว Gitolite กำหนด permission ง่ายกว่ามาก
- สามารถทำเป็น virtual office ได้

ดีครับ แต่ว่าตรง staging ไม่ค่อยเคลียครับ ไม่เข้าใจยังไงไม่รู้