คู่มือคำสั่ง Git สำหรับการใช้งานอย่างรวดเร็วและสะดวก
Git มีคำสั่งย่อยประมาณ 150 คำสั่ง และหลายคำสั่งมีรูปลักษณ์คล้ายกันอย่างน่ากังวล เช่น reset เทียบกับ restore, checkout เทียบกับ switch และ rm เทียบกับ restore --staged แผ่นข้อมูลช่วยเหลือนี้จัดกลุ่มคำสั่งต่างๆ ตามสถานการณ์ที่ใช้งานจริง ได้แก่ กระบวนการทำงานประจำวัน การสร้างสาขา การยกเลิกข้อผิดพลาด และการเก็บคำสั่งไว้ใช้ในภายหลัง ให้เลือกกลุ่มที่ต้องการและคัดลอกข้อมูลในแต่ละกลุ่ม
วิธีการใช้แผ่นข้อมูลช่วย
-
1
เลือกหัวข้อ
การดำเนินการต่างๆ เช่น การทำงานทุกวัน การแยกสาขา การยกเลิก การหรือการบันทึก ล้วนสอดคล้องกับโหมดทางจิตใจที่แตกต่างกัน
-
2
สแกนบล็อก
แต่ละบรรทัดเป็นคำสั่งที่สมบูรณ์และใช้งานได้จริง โดยไม่มีส่วนแทนค่าในวงเล็บมุม เว้นแต่จะระบุไว้อย่างชัดเจน
-
3
คัดลอกสิ่งที่คุณต้องการ
นำโค้ดไปวางไว้ในเทอร์มินัล ปรับชื่อสาขา หรือบันทึก SHA จากนั้นรันโปรแกรม
ทำไมคำสั่งต่างๆ จึงยังทำให้ผู้ใช้ที่ช่ำชองสับสนอยู่ดี
พอร์ซเลน (porcelain) ของ Git ค่อยๆ เติบโตขึ้นจากการเพิ่มเติมทีละส่วน checkout ถูกใช้ทับซ้อนทั้งการ “สลับสาขา” และ “กู้คืนไฟล์” ส่วน reset อยู่กึ่งกลางระหว่าง “ทิ้งงานที่ทำไว้” กับ “ย้ายตัวชี้ของสาขา” ตั้งแต่ Git 2.23 เป็นต้นมา มีคำกริยาที่ชัดเจนขึ้น
| เดิม | ใหม่ (ชัดเจนขึ้น) |
|---|---|
git checkout branch |
git switch branch |
git checkout -b new |
git switch -c new |
git checkout -- file |
git restore file |
git checkout --staged file |
git restore --staged file |
ลำดับขั้นการยกเลิกอย่างปลอดภัย
- กู้คืนไฟล์เดียว:
git restore path/to/file(ยังไม่ได้ staged) หรือgit restore --staged path/to/file(staged แล้วแต่ยังไม่ได้ commit) - ยกเลิก commit ล่าสุด แต่เก็บการเปลี่ยนแปลงไว้:
git reset --soft HEAD~1 - ยกเลิก commit ล่าสุดและทิ้งการเปลี่ยนแปลง:
git reset --hard HEAD~1(ลบทิ้งถาวร; ตรวจสอบให้แน่ใจว่าไม่มีงานที่ยังไม่ได้ commit) - ย้อนกลับ commit ที่แชร์ไปแล้ว:
git revert <sha>, สร้าง commit ใหม่ที่ลบล้าง commit เดิม; ปลอดภัยแม้กับประวัติที่ push ไปแล้ว
มารยาทในการ stash
- stash พร้อมข้อความเสมอ:
git stash push -m "wip: กำลังต่อ API" - ตรวจดูรายการ stash ด้วย
git stash listก่อน pop, stash ที่ไม่มีชื่อจะสะสมเร็วมาก git stash popนำมาใช้แล้วลบทิ้ง ส่วนgit stash applyนำมาใช้แล้วเก็บไว้
การกู้คืน
ทำ commit หายหลังจาก hard reset หรือไม่? มันน่าจะยังอยู่ใน reflog เรียกใช้ git reflog เพื่อดูการย้าย HEAD ทุกครั้งในช่วง 90 วันที่ผ่านมา แล้วใช้ git reset --hard <sha> เพื่อย้อนกลับไปยังสถานะที่ดี
คำถามที่พบบ่อย
ตั้งแต่เวอร์ชัน Git 2.23 (สิงหาคม 2019) โครงการได้แบ่งคำสั่ง checkout ที่มีหน้าที่ซ้อนทับกันออกเป็นสองคำสั่งแยกกัน โดย switch ใช้สำหรับเปลี่ยนสาขา และ restore ใช้สำหรับแก้ไขไฟล์ คำสั่งทั้งสองยังคงมีอยู่เพื่อความเข้ากันได้กับเวอร์ชันก่อนหน้า แต่สามารถอ่านได้ง่ายขึ้นเมื่อคุณตรวจสอบประวัติการใช้งานของเชลล์
reset ใช้ปรับตำแหน่งของตัวชี้ไปยังสาขา (และอาจรวมถึงโครงสร้างต้นไม้การทำงานด้วย) revert สร้างคำสั่งบันทึกใหม่เพื่อยกเลิกคำสั่งบันทึกก่อนหน้า โดยปลอดภัยเมื่อใช้งานบนสาขาที่ใช้ร่วมกัน checkout และ restore ใช้เปลี่ยนแปลงไฟล์ในโครงสร้างต้นไม้การทำงานโดยไม่เขียนประวัติการเปลี่ยนแปลงใหม่
ใช้ git revert <sha> เพื่อเพิ่มคำสั่ง commit สำหรับการชดเชย และดำเนินการ push ตามนั้น ควรหลีกเลี่ยงการใช้ git reset --hard + git push --force ในสาขาที่ถูกแชร์ เว้นแต่ทีมจะตกลงอย่างชัดเจน
คำสั่งต่างๆ เป็นข้อความแบบคงที่ที่แสดงบนหน้าเว็บ หัวข้อที่คุณเลือกจะถูกส่งไปยังเซิร์ฟเวอร์เพื่อแสดงคำสั่งที่เกี่ยวข้องเท่านั้น และจะปรากฏในลิงก์ของหน้าเมื่อคุณย้ายระหว่างสองขั้นตอน ข้อมูลดังกล่าวจะไม่ถูกบันทึกหรือติดตาม
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องสร้างตัวอักษรสุ่ม
สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน
เครื่องมือสร้าง EditorConfig
สร้างไฟล์ .editorconfig ด้วยกฎสไตล์และขนาดการเยื้อง การจบบรรทัด ชุดอักขระ และช่องว่างของคุณ เพื่อให้การจัดรูปแบบสอดคล้องกันในทุก IDE และโปรแกรมแก้ไข
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Git-Befehlsübersicht [DE]
- Folha de Dicas de Comandos Git [PT]
- ورقة مرجعية لأوامر Git [AR]
- Git 명령어 치트시트 [KO]
- Bảng tra nhanh lệnh Git [VI]
- Lembar Contekan Perintah Git [ID]
- Feuille de triche des commandes Git [FR]
- Ściąga z poleceń Git [PL]
- Hoja de trucos de comandos de Git [ES]
- Git-commando's spiekbriefje [NL]
- Gitコマンドチートシート [JA]
- Git-kommandon fusklapp [SV]
- Git Komutları Kopya Kağıdı [TR]
- Git命令速查表 [ZH]
- Git Command Cheatsheet [EN]
- Promemoria dei comandi Git [IT]
- Шпаргалка по командам Git [RU]