การยกเลิกการเปลี่ยนแปลงภายในเครื่อง
เรียนรู้วิธีต่าง ๆ ในการย้อนกลับหรือรีเซ็ตการเปลี่ยนแปลงภายในเครื่อง รวมถึงการนำไฟล์ออกจากพื้นที่เตรียมการและการแก้ไขคอมมิตก่อนหน้า
การยกเลิกการเปลี่ยนแปลงภายในเครื่อง เป็นบทเรียน Git & GitHub Professional Workflow ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Git & GitHub Professional Workflow และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Git & GitHub Professional Workflow มีบทเรียนทั้งหมด 4 บทเรียน
อุ๊ย! การย้อนกลับการเปลี่ยนแปลงภายในเครื่อง
เคยทำพลาดหรือเปลี่ยนใจระหว่างทำโครงการไหมครับ ไม่ต้องกังวลนะครับ ทุกคนก็เคยเป็นเช่นนั้น!
Git มีเครื่องมือที่ทรงพลังสำหรับย้อนกลับการเปลี่ยนแปลงในคลังภายในเครื่อง บทเรียนนี้จะแสดงวิธีย้อนคืนการแก้ไขที่ไม่ต้องการอย่างปลอดภัย
เริ่มต้นด้วย `git status` เสมอ
ก่อนย้อนกลับสิ่งใด สิ่งสำคัญคือต้องทราบสถานะปัจจุบันของคลัง คำสั่ง git status จะเป็นผู้ช่วยที่ดีที่สุดของคุณในกรณีนี้
คำสั่งนี้จะแจ้งว่าไฟล์ใดถูกแก้ไข จัดเตรียมไว้ (พร้อมสำหรับการคอมมิต) หรือยังไม่ได้ติดตาม
git statusนำไฟล์ที่จัดเตรียมไว้ออกจากพื้นที่จัดเตรียม
บางครั้งคุณเพิ่มไฟล์ไปยังพื้นที่จัดเตรียมด้วย git add แต่ภายหลังพบว่าไม่ต้องการรวมไฟล์นั้นไว้ในการคอมมิตครั้งถัดไป
คุณสามารถนำไฟล์นั้นออกจากพื้นที่จัดเตรียม โดยย้ายกลับไปเป็นสถานะที่แก้ไขแล้ว (ยังไม่ได้จัดเตรียม) ด้วยคำสั่ง git restore --staged <file>
git add my_feature.js
git status
git restore --staged my_feature.js
git statusละทิ้งการเปลี่ยนแปลงในไดเรกทอรีทำงาน (ไฟล์)
หากคุณแก้ไขไฟล์ในไดเรกทอรีทำงานแต่ยังไม่ได้จัดเตรียมไฟล์ และตอนนี้ต้องการละทิ้งการเปลี่ยนแปลงเหล่านั้นทั้งหมด จะทำอย่างไร
คำสั่ง git restore <file> จะย้อนคืนไฟล์นั้นไปเป็นสถานะเมื่อคอมมิตครั้งล่าสุด ซึ่งเท่ากับลบการแก้ไขภายในเครื่องของคุณ
echo "new content" > index.html
git status
git restore index.html
git statusละทิ้งการเปลี่ยนแปลงที่ยังไม่ได้คอมมิตทั้งหมด
โปรดใช้คำสั่งนี้ด้วยความระมัดระวัง! หากต้องการละทิ้งการเปลี่ยนแปลง ทั้งหมด ในไดเรกทอรีทำงานที่ยังไม่ได้คอมมิต คุณสามารถใช้ git restore .
คำสั่งนี้จะย้อนคืนไฟล์ที่แก้ไขทั้งหมดในไดเรกทอรีปัจจุบันและไดเรกทอรีย่อยให้กลับไปเป็นสถานะเมื่อคอมมิตครั้งล่าสุด ไฟล์ที่ยังไม่ได้จัดเตรียมจะสูญหาย!
echo "change 1" > file1.txt
echo "change 2" > file2.txt
git status
git restore .
git statusแก้ไขข้อความคอมมิตล่าสุด
พิมพ์ผิดในข้อความคอมมิตล่าสุดหรือลืมระบุรายละเอียดสำคัญหรือไม่
คุณสามารถแก้ไขข้อความของคอมมิตล่าสุดได้ด้วย git commit --amend คำสั่งนี้จะเปิดตัวแก้ไขข้อความเริ่มต้นของคุณเพื่อให้แก้ไขข้อความ
git commit --amend -m "Updated commit message with fix"แก้ไขเพื่อเพิ่มไฟล์ที่ขาดหาย
ลืมรวมไฟล์ไว้ในการคอมมิตล่าสุดหรือไม่ ไม่เป็นไรครับ!
จัดเตรียมไฟล์ที่ลืมด้วย git add จากนั้นใช้ git commit --amend --no-edit คำสั่งนี้จะเพิ่มไฟล์ที่จัดเตรียมไว้ลงในคอมมิตก่อนหน้าโดยไม่เปลี่ยนข้อความของคอมมิต
git add new_script.py
git commit --amend --no-editเหตุผลที่ควรใช้ `git restore`
คุณอาจพบคู่มือเก่าที่แนะนำให้ใช้ git reset HEAD <file> เพื่อนำไฟล์ออกจากพื้นที่จัดเตรียม หรือใช้ git checkout -- <file> เพื่อละทิ้งการเปลี่ยนแปลง
แม้คำสั่งเหล่านี้จะใช้งานได้ แต่ git restore เป็นคำสั่งรุ่นใหม่ที่เข้าใจง่ายกว่า ซึ่งออกแบบมาเพื่อให้การดำเนินการเหล่านี้ชัดเจนและปลอดภัยยิ่งขึ้น โดยออกแบบมาโดยเฉพาะสำหรับการย้อนกลับการเปลี่ยนแปลง
นำทุกอย่างมารวมกัน: สถานการณ์ตัวอย่าง
ลองนึกภาพว่าคุณแก้ไข config.json จัดเตรียมไฟล์นั้น แล้วพบว่าทำผิดพลาดและต้องการละทิ้งการเปลี่ยนแปลงทั้งหมด
- ขั้นแรก นำไฟล์ออกจากพื้นที่จัดเตรียม
- จากนั้นย้อนคืนไฟล์ให้กลับเป็นเวอร์ชันเมื่อคอมมิตครั้งล่าสุด
echo "bad config" > config.json
git add config.json
git status
git restore --staged config.json
git restore config.json
git statusตรวจสอบอย่างรวดเร็ว: การย้อนกลับ
คุณแก้ไข data.csv ในไดเรกทอรีทำงาน แต่ยังไม่ได้จัดเตรียมการเปลี่ยนแปลง คุณตัดสินใจว่าจะละทิ้งการแก้ไขเหล่านี้ทั้งหมดและย้อนคืน data.csv ให้กลับไปเป็นสถานะเมื่อคอมมิตครั้งล่าสุด
ทบทวน: เชี่ยวชาญการย้อนกลับ
ยอดเยี่ยมครับ! คุณได้เรียนรู้วิธีย้อนกลับการเปลี่ยนแปลงภายในเครื่องใน Git อย่างปลอดภัยแล้ว:
- ใช้
git statusเพื่อดูการเปลี่ยนแปลงปัจจุบัน - ใช้
git restore --staged <file>เพื่อนำไฟล์ออกจากพื้นที่จัดเตรียม - ใช้
git restore <file>เพื่อละทิ้งการเปลี่ยนแปลงในไดเรกทอรีทำงานของไฟล์หนึ่งไฟล์ - ใช้
git restore .เพื่อละทิ้งการเปลี่ยนแปลงทั้งหมดในไดเรกทอรีทำงานที่ยังไม่ได้จัดเตรียม (โปรดใช้ด้วยความระมัดระวัง!) - ใช้
git commit --amendเพื่อแก้ไขข้อความคอมมิตล่าสุดหรือเพิ่มไฟล์ที่ขาดหาย
คำสั่งเหล่านี้จำเป็นอย่างยิ่งต่อการรักษาประวัติโครงการให้สะอาดและถูกต้อง!
คำถามที่พบบ่อย
บทเรียน “การยกเลิกการเปลี่ยนแปลงภายในเครื่อง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การยกเลิกการเปลี่ยนแปลงภายในเครื่อง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Git & GitHub Professional Workflow ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Git & GitHub Professional Workflow มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การยกเลิกการเปลี่ยนแปลงภายในเครื่อง”
เรียนรู้วิธีต่าง ๆ ในการย้อนกลับหรือรีเซ็ตการเปลี่ยนแปลงภายในเครื่อง รวมถึงการนำไฟล์ออกจากพื้นที่เตรียมการและการแก้ไขคอมมิตก่อนหน้า คุณปฏิบัติ Git & GitHub Professional Workflow ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Git & GitHub Professional Workflow หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Git & GitHub Professional Workflow บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การยกเลิกการเปลี่ยนแปลงภายในเครื่อง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Git & GitHub Professional Workflow นี้ได้ไหม
ได้ บทเรียน Git & GitHub Professional Workflow ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเตรียม การคอมมิต และประวัติ
- การยกเลิกการเปลี่ยนแปลงภายในเครื่อง
- พื้นฐานการแยกสาขาและการผสาน
- การพักงานที่กำลังดำเนินการ