-
1. เริ่มต้นใช้งาน
- 1.1 เกี่ยวกับ Version Control
- 1.2 ประวัติย่อของ Git
- 1.3 Git ขั้นพื้นฐาน
- 1.4 การติดตั้ง Git
- 1.5 First-Time Git Setup
- 1.6 Getting Help
- 1.7 สรุป
-
2. Git ขั้นพื้นฐาน
- 2.1 เริ่มต้นใช้งาน Git Repository
- 2.2 การบันทึกการแก้ไขใน Repository
- 2.3 Viewing the Commit History
- 2.4 Undoing Things
- 2.5 Working with Remotes
- 2.6 Tagging
- 2.7 Tips and Tricks
- 2.8 Summary
-
3. Git Branching
- 3.1 What a Branch Is
- 3.2 Basic Branching and Merging
- 3.3 Branch Management
- 3.4 Branching Workflows
- 3.5 Remote Branches
- 3.6 Rebasing
- 3.7 Summary
-
4. Git on the Server
- 4.1 The Protocols
- 4.2 Getting Git on a Server
- 4.3 Generating Your SSH Public Key
- 4.4 Setting Up the Server
- 4.5 Public Access
- 4.6 GitWeb
- 4.7 Gitosis
- 4.8 Gitolite
- 4.9 Git Daemon
- 4.10 Hosted Git
- 4.11 Summary
-
5. Distributed Git
- 5.1 Distributed Workflows
- 5.2 Contributing to a Project
- 5.3 Maintaining a Project
- 5.4 Summary
-
6. Git Tools
- 6.1 Revision Selection
- 6.2 Interactive Staging
- 6.3 Stashing
- 6.4 Rewriting History
- 6.5 Debugging with Git
- 6.6 Submodules
- 6.7 Subtree Merging
- 6.8 Summary
-
7. Customizing Git
- 7.1 Git Configuration
- 7.2 Git Attributes
- 7.3 Git Hooks
- 7.4 An Example Git-Enforced Policy
- 7.5 Summary
-
8. Git and Other Systems
- 8.1 Git and Subversion
- 8.2 Migrating to Git
- 8.3 Summary
-
9. Git Internals
- 9.1 Plumbing and Porcelain
- 9.2 Git Objects
- 9.3 Git References
- 9.4 Packfiles
- 9.5 The Refspec
- 9.6 Transfer Protocols
- 9.7 Maintenance and Data Recovery
- 9.8 Summary
2.1 Git ขั้นพื้นฐาน - เริ่มต้นใช้งาน Git Repository
เริ่มต้นใช้งาน Git Repository
คุณสามารถสร้างโปรเจคใน Git โดยใช้สองวิธีหลัก วิธีแรกคือการนำเข้าโปรเจคหรือแฟ้มข้อมูลที่มีอยู่แล้วเข้าไปใน Git ส่วนวิธีที่สองคือการ clone จาก repository ที่อยู่ในเซิร์ฟเวอร์อื่น
การสร้าง Repository จากแฟ้มข้อมูลที่มีอยู่แล้ว
สำหรับวิธีนี้ ให้ไปที่แฟ้มข้อมูลที่คุณต้องการเริ่มใช้งาน Git และพิมพ์คำสั่ง
$ git init
คำสั่งนี้จะสร้างแฟ้มข้อมูลย่อยชื่อ .git ซึ่งเก็บแฟ้มโครงสร้างของ Git repository เปล่า ๆ ที่ยังไม่มีเนื้อหาใด ในขั้นตอนนี้แฟ้มที่อยู่ในโปรเจคของคุณจะยังไม่ถูก track โดย Git (กรุณาอ่านบทที่ 9 ถ้าคุณต้องการรู้ว่าแฟ้มที่อยู่ใน .git ที่คุณเพิ่งสร้างขึ้นมานั้นเก็บข้อมูลอะไรบ้าง)
เพื่อที่จะเริ่มเก็บประวัติการแก้ไขของแฟ้มที่มีอยู่ คุณจะต้องเพิ่มแฟ้มเข้าไปใน repository เสียก่อน โดยใช้คำสั่ง git add กับแฟ้มที่คุณต้องการเก็บประวัติ ตามด้วยการ commit:
$ git add *.c
$ git add README
$ git commit –m 'เริ่มเก็บประวัติ'
หลังจาก commit คุณก็จะได้ repository ที่เริ่มเก็บประวัติของแฟ้มต่าง ๆ ในโปรเจคของคุณแล้ว
การ clone จาก repository ที่มีอยู่แล้ว
ถ้าคุณต้องการคัดลอก repository ที่มีอยู่แล้ว - ยกตัวอย่างเช่น จากโปรเจคที่คุณอยากมีส่วนร่วม - คำสั่งที่คุณต้องใช้คือ git clone ถ้าคุณเคยใช้ระบบ VCS อื่นอย่าง Subversion คุณจะสังเกตเห็นว่าคำสั่งคือ clone ไม่ใช่ checkout ซึ่งความแตกต่างนี้เป็นความแตกต่างที่สำคัญมาก เพราะมันหมายความว่า Git ทำการคัดลอกข้อมูลเกือบทุกอย่างที่อยู่ในเซิร์ฟเวอร์ ทุกเวอร์ชั่นของทุกแฟ้มมีมีในประวัติของโปรเจคจะถูกคัดลอกมายังเครื่องของคุณเมื่อคุณใช้คำสั่ง git clone ในความเป็นจริงถ้าเกิดดิสก์ของเซิร์ฟเวอร์เกิดเสียขึ้นมา คุณสามารถใช้ clone ตัวใดก็ได้เพื่อกู้ข้อมูลกลับไป ณ ตอนที่คุณทำการสร้าง clone นั้น (แต่คุณก็อาจเสีย server-side hooks ฯลฯ ที่มีอยู่ในเซิร์ฟเวอร์ไป - อ่านข้อมูลเพิ่มเติมที่บทที่ 4)
คุณจะต้องใช้คำสั่ง git clone [url] เพื่อทำการ clone repository ยกตัวอย่างเช่น ถ้าคุณต้องการ clone ไลบรารี่ Ruby ที่ชื่อ Grit คุณสามารถทำได้โดยใช้คำสั่งดังนี้:
$ git clone git://github.com/schacon/grit.git
คำสั่งดังกล่าวจะสร้างไดเรกทอรี่ชื่อ "grit" และสร้างไดเรกทอรี่ย่อยชื่อ .git จากนั้นจะทำการดึงข้อมูลทั้งหมดทีมีอยู่ใน repository และ check out working copy เวอร์ชั่นล่าสุด ถ้าคุณดูใน grit คุณจะเห็นแฟ้มที่อยู่ในโปรเจคทั้งหมดที่คุณสามารถเริ่มใช้งานได้ทันที ถ้าคุณต้องการ clone repository ไปที่ไดเรกทอรี่ชื่ออื่น คุณสามารถระบุชื่อที่คุณต้องการได้ต่อท้ายคำสั่งด้านบน:
$ git clone git://github.com/schacon/grit.git mygrit
คำสั่งนี้ทำงานเหมือนคำสั่งด้านบน แต่เก็บข้อมูลในไดเรกทอรี่ mygrit แทน
Git มีโพรโทคอลสำหรับโอนข้อมูลหลายแบบ ตัวอย่างด้านบนใช้โพรโทคอล git:// แต่คุณสามารถใช้ http(s):// หรือ user@server:path.git ซึ่งใช้ SSH ได้เหมือนกัน ลองอ่านบทที่ 4 เพื่อดูวิธีตั้งค่าเครื่องเซิร์ฟเวอร์ของคุณ และข้อดีและข้อเสียของแต่ละโพรโตคอล