บทความนี้จะอธิบายโดยย่อถึงความแตกต่างระหว่าง git reset –hard, –soft และ –mixed
อะไรคือความแตกต่างระหว่าง git reset –mixed, –soft และ –hard?
Git มีตัวเลือกการรีเซ็ตหลายตัว ขึ้นอยู่กับวิธีจัดการกับคอมมิท ตัวเลือกที่มีอยู่ทั้งหมดจะแตกต่างกัน พวกเขาทั้งหมดแก้ไขประวัติ Git และย้าย HEAD กลับ นอกจากนี้ยังจัดการกับการเปลี่ยนแปลงที่แตกต่างกัน เช่น:
- “ -อ่อน ” ตัวเลือกที่ใช้กับ “ $ คอมไพล์รีเซ็ต ” คำสั่งเพื่อเก็บไฟล์และส่งคืนการเปลี่ยนแปลงการคอมมิตไปยังดัชนีการจัดเตรียม Git
- “ $ git รีเซ็ต – ผสม ” ใช้เพื่อเลิกทำการเปลี่ยนแปลงที่คอมมิตและลบไฟล์ออกจากดัชนีการแสดงละครโดยไม่ลบออกจากไดเร็กทอรีการทำงาน
- “ -แข็ง ” ตัวเลือกด้วย “ $ คอมไพล์รีเซ็ต คำสั่ง ” ใช้เพื่อลบการเปลี่ยนแปลงทั้งหมดและลบออกจากไดเร็กทอรีการทำงานในเครื่อง
ลองมาดูตัวอย่างดูว่า “ $ คอมไพล์รีเซ็ต ” คำสั่งใช้งานได้กับตัวเลือกต่าง ๆ !
ขั้นตอนที่ 1: ไปที่ที่เก็บ Git ที่ต้องการ
ขั้นแรก ย้ายไปยังที่เก็บ Git ที่คุณต้องการโดยใช้ ' ซีดี ' สั่งการ:
$ ซีดี 'ค:\ไป \t is_repo'
ขั้นตอนที่ 2: สร้างไฟล์
ตอนนี้ดำเนินการคำสั่งด้านล่างเพื่อสร้างไฟล์:
$ สัมผัส ไฟล์ 4.txt
ขั้นตอนที่ 3: เพิ่มไฟล์ไปยัง Staging Index
ใช้ ' คอมไพล์เพิ่ม ” คำสั่งเพื่อเพิ่มไฟล์ที่สร้างขึ้นใหม่ลงในดัชนีการจัดเตรียม:
$ คอมไพล์เพิ่ม ไฟล์ 4.txt
ขั้นตอนที่ 4: ยอมรับการเปลี่ยนแปลง
ถัดไป เพิ่มการเปลี่ยนแปลงทั้งหมดลงในที่เก็บการทำงานโดยดำเนินการ “ คอมไพล์คอมไพล์ ' สั่งการ:
$ คอมไพล์คอมไพล์ -ม 'เพิ่ม File4'
ขั้นตอนที่ 5: ตรวจสอบบันทึก Git
จากนั้นตรวจสอบประวัติบันทึก Git เพื่อดูการคอมมิตล่าสุดที่เพิ่มเข้ามา:
$ บันทึกคอมไพล์ในเอาต์พุตด้านล่าง จะเห็นได้ว่าคอมมิชชันที่เพิ่มล่าสุดทั้งหมดจะแสดงขึ้น และ ' ศีรษะ ” กำลังชี้ไปที่การกระทำล่าสุด:
บันทึก: หากต้องการตรวจสอบตำแหน่งการชี้ปัจจุบันของ HEAD ในทางที่ดีขึ้น ให้ดำเนินการ “ บันทึกคอมไพล์ ” คำสั่งพร้อมกับ “ –ออนไลน์ ' ธง:
$ บันทึกคอมไพล์ --ออนไลน์ผลลัพธ์ที่ระบุด้านล่างแสดงรายการของคอมมิต SHA แฮชพร้อมข้อความคอมมิต:
ขั้นตอนที่ 6: ใช้คำสั่ง git reset –soft
หากต้องการย้อนกลับการเปลี่ยนแปลงที่เพิ่มจากที่เก็บ Git ไปเป็นดัชนีการแสดงละคร ให้ใช้ ' คอมไพล์รีเซ็ต ” คำสั่งพร้อมกับ “– อ่อน ” และระบุตำแหน่ง HEAD ที่ต้องการเพื่อเลื่อนตัวชี้:
$ คอมไพล์รีเซ็ต --อ่อน หัว ~ 1
ขั้นตอนที่ 7: ตรวจสอบสถานะ Git
ตอนนี้ ตรวจสอบตำแหน่งการย้อนกลับของ HEAD ตรวจสอบสถานะที่เก็บ Git:
$ สถานะคอมไพล์จะเห็นได้ว่า “ คอมไพล์รีเซ็ต - อ่อน ” คำสั่งส่งคืนการเปลี่ยนแปลงการคอมมิตไปยังดัชนีการจัดเตรียม Git นอกจากนี้ “ ไฟล์ 4.txt ไฟล์ ” อยู่ในดัชนีการจัดเตรียม Git และจำเป็นต้องคอมมิต:
ขั้นตอนที่ 8: ตรวจสอบบันทึก Git
หากต้องการดูตำแหน่งปัจจุบันของ HEAD ให้รันคำสั่งที่กำหนดพร้อมกับปุ่ม “ –ออนไลน์ ' ตัวเลือก:
$ บันทึกคอมไพล์ --ออนไลน์ที่นี่ HEAD ชี้ไปที่ ' ไฟล์3 ' ให้สัญญา:
ขั้นตอนที่ 9: ใช้ git reset — คำสั่งผสม
หากต้องการเลิกทำการเปลี่ยนแปลงที่คอมมิตและลบไฟล์ออกจากพื้นที่จัดเตรียมโดยไม่ลบออกจากไดเร็กทอรีการทำงาน ให้ดำเนินการ ' $ git รีเซ็ต – ผสม ” คำสั่งพร้อมกับตำแหน่ง HEAD ที่จำเป็นของการกระทำ:
$ คอมไพล์รีเซ็ต --ผสม หัว ~ 1
ขั้นตอนที่ 10: ตรวจสอบสถานะ Git
ดูการเปลี่ยนแปลงที่เพิ่มใหม่โดยตรวจสอบสถานะที่เก็บ Git:
$ สถานะคอมไพล์สามารถสังเกตได้ว่าการเปลี่ยนแปลงการคอมมิตที่ระบุจะถูกลบออกจากพื้นที่การแสดงละคร อย่างไรก็ตามพวกเขาจะอยู่ในพื้นที่ทำงาน:
ขั้นตอนที่ 11: ตรวจสอบบันทึก Git
ตรวจสอบประวัติบันทึกการอ้างอิงที่เก็บ Git พร้อมกับแฮช SHA:
$ บันทึกคอมไพล์ --ออนไลน์
ขั้นตอนที่ 12: ใช้ git reset — hard Command
หากต้องการลบการเปลี่ยนแปลงที่เพิ่มออกจากไดเร็กทอรีการทำงานในเครื่องของ Git ให้ดำเนินการ ' $ git รีเซ็ต - ยาก ' สั่งการ:
$ คอมไพล์รีเซ็ต --แข็ง หัว ~ 1
ขั้นตอนที่ 13: ตรวจสอบตัวชี้ HEAD ที่กลับด้าน
ในการตรวจสอบตัวชี้ HEAD ให้ย้อนกลับไปยังตำแหน่งที่ระบุ เรียกใช้ “ บันทึกคอมไพล์ ' สั่งการ:
$ บันทึกคอมไพล์ --ออนไลน์เอาต์พุตด้านล่างแสดงว่า HEAD ชี้ไปที่ ' เพิ่มไฟล์ 1 แล้ว ' ให้สัญญา:
ขั้นตอนที่ 14: ตรวจสอบสถานะ Git
หากต้องการดูการเปลี่ยนแปลงที่เพิ่ม ให้ตรวจสอบสถานะ Git:
$ สถานะคอมไพล์จะเห็นได้ว่าเราไม่มีการติดตามและการเปลี่ยนแปลงที่รอดำเนินการของ “ ไฟล์ 2.txt ' ไฟล์. ดังนั้น File2.txt จึงถูกลบออกอย่างสมบูรณ์:
ขั้นตอนที่ 15: ตรวจสอบรายการเนื้อหาที่เก็บ
ในการตรวจสอบรายการที่เก็บเนื้อหา ให้เรียกใช้ “ ล ' สั่งการ:
$ ลอย่างที่คุณเห็น ' ไฟล์ 2.txt ไม่มีไฟล์ ” ในไดเร็กทอรีปัจจุบัน:
เราได้อธิบายความแตกต่างระหว่างตัวเลือก git reset –mixed, –soft และ –hard
บทสรุป
“ คอมไพล์รีเซ็ต คำสั่ง ” ใช้เพื่อรีเซ็ตการเปลี่ยนแปลง แก้ไขประวัติของที่เก็บ Git และแก้ไขข้อผิดพลาด “ คอมไพล์รีเซ็ต - อ่อน ” คำสั่งเก็บไฟล์และส่งคืนการเปลี่ยนแปลงการคอมมิตไปยังพื้นที่การจัดเตรียม Git ในทางตรงกันข้าม “ คอมไพล์รีเซ็ต - ผสม คำสั่ง ” ยกเลิกการคอมมิตการเปลี่ยนแปลงและลบไฟล์ออกจาก staging index โดยไม่ลบออกจากไดเร็กทอรีการทำงาน หากต้องการลบการเปลี่ยนแปลงทั้งหมดและลบออกจากพื้นที่ทำงานของ Git ให้คลิก “ คอมไพล์รีเซ็ต - ยาก ” สามารถใช้คำสั่ง บทความนี้แสดงความแตกต่างระหว่าง git reset –mixed, –soft และ –hard