วิธีใช้ git เบื้องต้น

Post on 11-Feb-2017

506 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

วธิใีช้ GIT เบื้องต้น

สำ�หรบัผมท่ีเขยีนแอปพลิเคชัน่ม�ซกัระยะหน่ึงก็มโีอก�สได้ใชG้ITบอ่ยนะครบั ผมจงึขอนิย�ม

มนัว�่ตัวชว่ยในก�รจดัก�รกับเวอรช์ัน่ต่�งๆของโปรแกรม โดยเวล�ท่ีเร�เขยีนโปรแกรมอะไรซกัตัว เวล�ท่ีเร�ต้องก�รbackup ตัวโปรแกรมของเร� เร�ก็จะใชว้ธิ ีcopy/past

ลงในคอมพวิเตอรข์องเร�ใชไ่หมครบั

แต่ถ้�อยูดี่ๆถ้�ฮ�รด์ดิสของเร�มปัีญห�เร�คงไมส่�ม�รถนำ�โปรแกรมท่ีเขยีนออกม�ใชไ้ด้ และในก�รทำ�ง�นเป็นทีมท่ีเร�ต้องทำ�ง�นรว่มกับ

คนอ่ืนเร�คงไมอ่ย�กม�นัง่ก็อปลงแฟลชไดรฟ์หรอืสง่เมล์ใชไ่หมครบั

Git (ในคว�มเข�้ใจของผม) ก็เป็นเหมอืนตัวกล�งท่ีคอยชว่ยเร�ในก�รเก็บไฟล์ขอ้มูล โดยแยกเป็นแต่ละเวอรช์ัน่ และชว่ยใหเ้ร�ส�ม�รถทำ�ง�นรว่มกับคนอ่ืนได้ง่�ยขึ้น

แนะนำ�ใหอ่้�นเพิม่เติมท่ีDevAhoyGitBook

แต่ถ้�จะใหเ้ข�้ใจมนัอย�่งถ่องแท้ เร�ก็ม�ลองใช้ง�นมนัดจูรงิๆเลยดีกว�่ก่อนอ่ืนก็ไปด�วน์โหลดท่ี

https://www.git-scm.com/

เมื่อทำ�ก�รลงโปรแกรมเสรจ็เรยีบรอ้ยแล้วก็ดับเบิล้คลิกท่ีตัวgit-bashได้เลย

เมื่อเปิดม�หน้�ต�จะเป็นแบบนี้ ขนัตอนแรกเร�ต้องกำ�หนดชื่อ และอีเมล์ ซะก่อน

ทำ�ก�รเชค็โดยพมิพ์git config --list

โดยในตัวอย�่งน้ีผมจะสร�้งโฟลเดอรไ์วอั้นหนึ่งนะครบัชื่อว�่ GitTest โดยจะมไีฟล์ v1.txt

ก่อนอ่ืนผมทำ�ก�รเข�้ไปท่ีไดรฟD์ ท่ีไดเรก็ทอรีช่ื่อ GitTestสำ�หรบัใครท่ีเข�้ผิดส�ม�รถใชค้ำ�สัง่ cd.. เพื่อยอ้นกลับ หรอื cd\ เพื่อกลับไปที่ Root directory ได้นะครบั

ต่อม�เร�จะทำ�ก�รสร�้ง git repository ขึ้นม�

เปิด Show hidden files ก่อนนะครบั

จะได้โฟลเดอร ์.git แบบนี้

สถ�นะต่�งๆของ git มอีะไรบ�้ง

Untracked ไฟล์ยงัไมถ่กู track โดยgit (ไฟล์ท่ีสรา้งใหม)่

Unmodified ไฟล์อยูใ่นgitเรยีบรอ้ย และไมม่กีารปรบัแต่ง

Modified ไฟล์มกีารปรบัแต่งแต่ยงัไมไ่ด้ commit

Staged ไฟล์ท่ีอยูใ่นindex คือไฟล์ท่ีพรอ้มจะcommit

ลง Repository

เมอืเร�พมิพค์ำ�สัง่ git status เร�จะเหน็ว�่เจ�้ v1.txtอยูใ่นสถ�นะ untracked

สิง่แรกท่ีผมทำ�คือทำ�ก�รเพิม่ v1 เข�้ไปใน git Repository (* ใชใ้นกรณีท่ีจำ�น�มสกลุไฟล์ไมไ่ด้)

เมื่อทำ�ก�รเชค็จะเหน็ว�่ v1.txt อยูใ่นสถ�นะ Unmodified เรยีบรอ้ย

แต่ถ้�ในกรณีท่ีเร�มไีฟล์เยอะแบบน้ี เร�คงไมอ่ย�กม�นัง่เพิม่ทีละไฟล์หรอกนะครบั

ท�ง git เลยมคีำ�สัง่พเิศษท่ีใชส้ำ�หรบัเพิม่ไฟล์ท่ีอยูใ่นสถ�นะUntracked ทัง้หมด คือ git add -A

ในกรณีท่ีเร�ต้องก�ร untracked ไฟล์ เร�ส�ม�รถทำ�ได้โดยก�รใชค้ำ�สัง่git rm –cached ต�มด้วยชื่อไฟล์

ขัน้ต่อไปคือก�รcommit file โดยผมจะลบไฟล์ทัง้หมดท้ิงเหลือแค่

ไฟล์ v1.txt เท่�นัน้

ไฟล์จะอยูใ่นสถ�นะ deleted นะครบั เร�ก็ใชค้ำ�สัง่ git add --update เพื่ออัพเดทไฟล์นะครบั

ต่อไปก็ใชค้ำ�สัง่ commit -m ต�มด้วยขอ้คว�มท่ีใชร้ะบุเชน่เร�ได้เพิม่อะไรไปบ�้งในก�รcommit

และก็ใชค้ำ�สัง่ git log เพื่อดวู�่เร�ได้commit อะไรไปบ�้ง

หลังจ�กนัน้ลองใชค้ำ�สัง่ git status ดจูะเหน็ว�่ไฟล์v1.txt ได้ห�ยไปแล้ว ก็คือเร�ได้commitเรยีบรอ้ยแล้ว

ต่อม�ผมได้เพิม่ไฟล์ v2.txt

และได้commit เข�้สู ่git แต่ถ้�ผมต้องก�รท่ีจะดึง version เก่�ม�ใช้ผมส�ม�รถทำ�ได้โดยก�รนำ�เลข checksum เพื่ออ้�งอิงถึงversion ท่ีผมต้องก�ร

แบบนี้

กลับม�แล้วว

v1 v2

แต่ถ้�เร�ขีเ้กียจใชว้ธิแีรก ก็ส�ม�รถใชค้ำ�สัง่

git checkout HEAD~1 (โดยตัวเลขก็นับยอ้นหลังไปนะ

ครบั ว�่จะกลับไปก่ีเวอรช์ัน่)

ก�รcheckout ไมใ่ชก่�รลบนะครบัเพยีงแต่เป็นก�รยอ้นกลับไปเท่�นัน้

แต่ถ้�เร�ยอ้นกลับไปและทำ�ก�รcommitละ

สร�้งไฟล์ v3.txt ขึ้นม�แล้วcommit ซะเลย

v1 v2

ไฟล์ v2 จะยงัคงอยูน่ะครบัเพยีงแต่เร�ทำ�ก�รแตก branch

ออกไป ก็เหมอืนเร�สร�้งโลกคู่ขน�นขึ้นม�อีกโลกหน่ึงโดยไมว่�่เร�จะทำ�อะไร ก็ไมม่ผีลกับโลก

จรงิของเร�v3

โดยเร�ส�ม�รถเชค็ได้นะครบัว�่ตอนน้ีเร�อยูโ่ลกไหนด้วยก�ร

พมิพ์

ถ้�ต้องก�รกลับไปยงัโลกจรงิก็ส�ม�รถใชค้ำ�สัง่

git checkout master ได้เลย

v1 v2

เร�จะกลับไปยงั v2 นะครบั และถ้�เพื่อนๆลองใชค้ำ�สัง่ git branch

ดก็ูจะไมเ่จอเจ�้ v3 นะครบั

v3

v1 v2

เพร�ะเร�ไมไ่ด้สร�้ง branch ไวที้่ v2 แต่สร�้งไวท่ี้ v1 ต่�งห�ก ถ้�ต้องก�รไปยงัv3 ก็ใหก้ลับไปยงั

v1 ก่อนและก็ใชค้ำ�สัง่ checkout เหมอืนเดิม

v3

หลังจ�กท่ีเร�ได้ลองสร�้ง branch จ�กก�ร commit ไปแล้ว แต่ถ้�เร�ต้องก�รสร�้ง branch โดย

กำ�หนดเองในกรณีท่ีอย�กทดลองอะไรเล่นๆละ

ส�ม�รถทำ�ได้โดยใชค้ำ�สัง่ git branch ต�มด้วยชื่อลองเชค็ดก็ูจะได้แบบนี้ครบั

ก�รอัพ repository ขึ้น github

หลังจ�กท่ีเร�ได้เรยีนรูก้�รใช ้git เบื้องต้นกันไปแล้วต่อไปเร�ก็จะทำ�ก�รอัพ repository ขึ้น githubในกรณีท่ีต้องก�รทำ�ง�นเป็นทีมนะ

ครบั(จะใชตั้วอ่ืนก็ได้นะ)

https://github.com/

สมคัรสม�ชกิใหเ้รยีบรอ้ยซะก่อนนะครบั

ตัง้ชื่อและก็กำ�หนดร�ยระเอียดให้เรยีบรอ้ย

ถ้�ต้องก�รกำ�หนดเป็น private ต้องเสยีเงินนะครบั

ก่อนจะ push ก็ทำ�ก�รเชค็ก่อนว�่ เรยีบรอ้ยดีแล้ว

จ�กนัน้ก็ใส ่username password

เสรจ็แล้ว จะเหน็ว�่ท่ีเร� commit หรอืสร�้ง branch มกี�รแจง้ไวด้้วย

จบแล้วครบั ถ้�ใครชอบหรอืไม่ชอบ(ชอบเหอะ) ส�ม�รถติดต�ม

ได้ท่ี www.droid-wizard.blogspot.com

top related