diff --git a/index.html b/index.html index 09dda754..e72cb25c 100644 --- a/index.html +++ b/index.html @@ -50,6 +50,7 @@
นี่คือคู่มือการใช้ Git แบบง่ายๆ - ไม่ได้โม้ด้วย ;)
+ Tweet + + +
+ สร้าง directory ใหม่ก่อน, เปิดเข้าไปแล้วพิมพ์
+ git init
+ เพื่อสร้างฐานข้อมูล git ตัวใหม่
+
+ สร้างสำเนาฐานข้อมูลใหม่ โดยพิมพ์คำสั่ง
+ git clone /path/to/repository
+ ถ้าฐานข้อมูลอยู่บนเซิฟเวอร์ คุณต้องพิมพ์
+ git clone username@host:/path/to/repository
+
+ ฐานข้อมูลของคุณจะมี "tree" อยู่สามอันที่ถูกดูแลด้วย git ซึ่ง
+ tree ตัวแรกคือ Working Directory
จะเก็บไฟล์ทั้งหมดไว้ จากนั้น
+ tree ตัวที่สองคือ Index
จะเป็นพื้นที่สำหรับ staging (ลำดับการเปลี่ยนแปลงของข้อมูล) และ
+ tree สุดท้ายคือ HEAD
ซึ่งจะชี้ไปยังการบันทึกข้อมูลครั้งสุดท้าย
+
+ คุณสามารถเสนอการเปลี่ยนข้อมูลหรือไฟล์ (โดยใส่ไว้ใน Index) ด้วยคำสั่ง
+ git add <filename>
+ git add *
+ นี่คือขั้นตอนแรกสำหรับขั้นตอนการทำงานของ git ถ้าจะบันทึกข้อมูลที่เสนอไป คุณจะต้องพิมพ์
+ git commit -m "Commit message"
+ ไฟล์ก็จะถูกบันทึกลงบน HEAD แต่ไม่ได้บันทึกลงฐานข้อมูลบนเซิฟเวอร์
+
+ ข้อมูลใหม่ยังอยู่บน HEAD ของฐานข้อมูลส่วนตัว ถ้าคุณต้องการจะส่งข้อมูลที่เปลี่ยนใหม่ไปยังฐานข้อมูลบนเซิฟเวอร์ ทำตามคำสั่งนี้
+ git push origin master
+ เปลี่ยนคีย์เวิร์ด master เป็น branch ที่คุณต้องการจะส่งข้อมูลไป
+
+ ถ้าคุณยังไม่ได้ทำสำเนาของฐานข้อมูลแต่ว่าคุณต้องการจะเชื่อมฐานข้อมูลนี้กับเซิฟเวอร์ คุณต้องพิมพ์ตามนี้
+ git remote add origin <server>
+ คุณก็จะสามารถส่งข้อมูลที่เปลี่ยนใหม่ไปยังเซิฟเวอร์ที่คุณต้องการได้
+
+
+ Branches เป็นที่ใช้สำหรับพัฒนา features ตัวใหม่โดยไม่ต้องรบกวนตัวอื่น master branch เป็น "default" branch (บร้านที่ถูกเลือกโดยอัตโนมัติ) เมื่อคุณสร้างฐานข้อมูลครั้งแรก คุณต้องใช้ branches ตัวอื่นสำหรับการพัฒนาอย่างอื่นและ merge พวกมันกลับเข้ามาที่ master branch เมื่อพัฒนาเสร็จแล้ว +
+
+ สร้าง branch ใหม่ชื่อ "feature_x" และเริ่มใช้มัน โดยต้องพิมพ์
+ git checkout -b feature_x
+ เปลี่ยนมาเป็นตัวมาสเตอร์
+ git checkout master
+ และลบ branch ทิ้ง
+ git branch -d feature_x
+ คนอื่นจะ ไม่สามารถใช้ branch ของคุณได้จนกว่าคุณจะส่งตัว branch ของคุณไปยังฐานข้อมูลบนเซิฟเวอร์ ให้ทำตามนี้
+ git push origin <branch>
+
+ จะอัพเดทฐานข้อมูลส่วนตัวให้มีข้อมูลใหม่จากเซิฟเวอร์ คุณต้องพิมพ์
+ git pull
+ ใน directory ปัจจุบัน เพื่อจะได้ดึงข้อมูล (fetch) และ รวบรวมข้อมูล (merge) จากฐานข้อมูลบนเซิฟเวอร์
+ ถ้าจะ merge บร้านตัวอื่นมาที่บร้านของคุณเอง (อย่างเช่น มาสเตอร์บร้าน) คุณต้องพิมพ์
+ git merge <branch>
+ วิธีที่กล่าวมานี้ git จะพยายามรวบรวมข้อมูลทั้งหมดโดยอัตโนมัติ แต่ว่าบางครั้ง git ก็ไม่สามารถรวบรวมข้อมูลได้เอง ซึ่งสถานการณ์นี้เรียกว่า conflicts.
+ เป็นหน้าที่ของคุณที่ต้องแก้ไขและรวบรวมตัว conflicts เหล่านี้โดยแก้ที่ไฟล์แต่ละตัว หลังจากแก้ไขเสร็จแล้วคุณก็จะ merge ได้โดยพิมพ์
+ git add <filename>
+ ก่อนจะ merging คุณสามารถดูตัวอย่างไฟล์ได้ด้วยคำสั่ง
+ git diff <source_branch> <target_branch>
+
+ แนะนำให้คุณสร้างแท๊กทุกครั้งที่เปิดตัวซอร์ฟแวร์ วิธีการนี้เรียกว่า concept ซึ่ง SVN ก็มีเช่นกัน คุณสร้างแท๊กตัวใหม่ ชื่อ 1.0.0 โดยพิมพ์คำสั่ง
+ git tag 1.0.0 1b2e1d63ff
+ 1b2e1d63ff คืออักษร 10 ตัวแรกจากไอดีการบันทึก (commit id) ที่คุณต้องการจะเชื่อมกับแท๊ก คุณสามารถหาไอดีการบันทึกได้จาก...
+
+ คุณสามารถดูประวัติของฐานข้อมูลได้โดยคำสั่ง..
+ git log
+ คุณสามารถใส่พารามีเตอร์ไปยังล็อกเพื่อให้มันแสดงผลลัพธ์ที่คุณต้องการ ถ้าอยากจะได้ประวัติการบันทึกของโปรแกรมเมอร์คนใดคนหนึ่ง คุณพิมพ์:
+ git log --author=bob
+ ถ้าอยากได้ล็อกที่สั้นๆโดยประวัติการบันทึกถูกจดไว้ในแต่ละแถว ใช้คำสั่ง:
+ git log --pretty=oneline
+ หรือถ้าอยากจะเห็นรูปวาด ASCII art tree ของบร้านทุกตัว โดยมีชื่อกับแท้ก ต้องพิมพ์:
+ git log --graph --oneline --decorate --all
+ อยากจะเห็นเพียงไฟล์ถูกเปลี่ยน:
+ git log --name-status
+ ที่บอกมานี่ยังเป็นแค่ส่วนหนึ่งของพารามีเตอร์เท่านั้น อยากจะรู้มากกว่านี้ ไปเปิดดูที่
+ git log --help
+
+ บางทีคุณอาจจะทำข้อมูลเสียหาย ซึ่งก็ไม่เกิดขึ้นหรอกนะ ;), คุณสามารถเริ่มข้อมูลใหม่ได้โดยแทนค่าข้อมูลเก่าด้วยคำสั่ง
+ git checkout -- <filename>
+ คำสั่งนี้แทนข้อมูลใน working tree ด้วยข้อมูลจาก HEAD ข้อมูลที่ถูกเปลี่ยนก็ได้บันทึกลงบน index และไฟล์ใหม่ก็ถูกบันทึกด้วย
+
+ แต่ถ้าคุณอยากจะทิ้งข้อมูลใหม่ทั้งหมดที่คุณสร้างและก็บันทึกไว้ด้วย คุณควรจะดึงข้อมูลล่าสุดจากเซิฟเวอร์และก็เชื่อมต่อกับ master branch ส่วนตัวของคุณ โดยทำตามนี้
+ git fetch origin
+ git reset --hard origin/master
+
+ built-in git GUI
+ gitk
+ ตกแต่งผลลัพธ์ของ git ด้วยสีสวยๆ
+ git config color.ui true
+ แสดงผลการบันทึกอย่างละบรรทัดบนล็อก
+ git config format.pretty oneline
+ เพิ่มไฟล์แบบ interactive
+ git add -i
+
+
+
+
+ +
ติชมได้ที่นี่ (comments)
+ + + +