เป็นวิธีที่ถูกต้องในการยกเลิกการเปลี่ยนชื่อในคอมไพล์เช่น:
git mv file1 file2
เป็นวิธีที่ถูกต้องในการยกเลิกการเปลี่ยนชื่อในคอมไพล์เช่น:
git mv file1 file2
คำตอบ:
คำตอบที่ไม่ใช่หน้าด้าน:
git mv file2 file1
อัพเดตดัชนีสำหรับเส้นทางเก่าและใหม่โดยอัตโนมัติ
ตรวจสอบเอกสารของgit mv
git checkout .
ไม่ทำงานแม้ว่าจะมี-f
ตัวเลือกอยู่ก็ตาม
git checkout -- .
คุณจำเป็นต้องใช้
fatal: source directory is empty,
เพียงgit reset --hard
ไม่ทำงาน
หากคุณไม่ได้ทำการเปลี่ยนแปลงใด ๆ (ที่คุณต้องการเก็บไว้) ตั้งแต่การกระทำครั้งสุดท้ายคุณสามารถทำได้
git reset --hard
git reset --hard
ฉันจะไม่ต้องการที่จะได้รับในนิสัยของการใช้ เพียงแค่เลื่อนไปข้างหลังมันเป็นทางเลือกที่ปลอดภัยกว่าสำหรับฉัน
git reset HEAD file2
ทำเคล็ดลับสำหรับฉัน
ในกรณีของฉันฉันย้ายโฟลเดอร์ทั้งหมดแล้วรู้ว่าฉันไม่ควรมี
ฉันชอบคำตอบของ @Dave Konopka จริง ๆ แต่ฉันไม่ประสบความสำเร็จมากกับวิธีการนั้น (อาจเป็นรุ่น GIT ของฉัน (1.8.4) ไฟล์ของฉันยังคงแสดงว่าถูกลบฉันมีการเปลี่ยนแปลงอื่น ๆ ในสแต็คที่ฉันไม่ต้องการ แพ้ (น่าเสียดาย)
ฉันประสบความสำเร็จในการทำสิ่งนี้:
git reset moved_folder
git checkout original_folder
ขึ้นอยู่กับสิ่งที่คุณต้องการทำให้สำเร็จ หากคุณต้องการให้ไฟล์ปรากฏเป็นไฟล์ที่ไม่เคยถูกย้ายคุณสามารถรีเซ็ต (หรือ rebase) กลับไปเป็นก่อนที่จะย้าย หากคุณไม่สนใจประวัติศาสตร์ให้ย้ายมันกลับไป
หากคุณเปลี่ยนชื่อไฟล์จำนวนมากโดยไม่ตั้งใจและต้องการกลับไปยังตำแหน่งที่คุณเริ่มต้นให้ลบไฟล์ที่เปลี่ยนชื่อทั้งหมดที่แสดงขึ้นมาadds
ภายใต้การgit status
โทร
เมื่อคุณลบไฟล์ที่มีการเปลี่ยนแปลงทั้งหมดคุณสามารถเรียกใช้git checkout -- *
เพื่อเรียกคืนชื่อไฟล์ดั้งเดิมในเครื่องได้
git reset HEAD file2
git checkout -- file1
rm file2
คำสั่งแรก unstages file2 แต่ทิ้งสำเนาไว้ คำสั่งที่สองเรียกคืนไฟล์ต้นฉบับและไฟล์ที่สามจะลบไฟล์ใหม่
เคล็ดลับที่ฉันใช้คือการทำ git stash เพื่อยกเลิกการเปลี่ยนแปลงทั้งหมดของฉัน (ซึ่งรวมถึงการเรียกคืนไฟล์ mv'd) จากนั้นลบ stash ด้วย git stash drop
น่ากลัวน้อยกว่าคือไปที่ระดับสูงสุดของ repo และทำ:
git reset การ
ชำระเงิน git
git mv file2 file1