ฉันจะลบGitของฉันทั้งหมดพร้อมกันได้อย่างไร
ฉันหมายถึงเฉพาะเจาะจงด้วยการพิมพ์คำสั่งเดียว
ฉันจะลบGitของฉันทั้งหมดพร้อมกันได้อย่างไร
ฉันหมายถึงเฉพาะเจาะจงด้วยการพิมพ์คำสั่งเดียว
คำตอบ:
คำสั่งต่อไปนี้จะลบการหยุดของคุณทั้งหมด:
git stash clear
จากเอกสาร git :
clear
ลบสถานะที่เก็บไว้ทั้งหมด
คำเตือนที่สำคัญ: จากนั้นรัฐเหล่านั้นจะถูกตัดแต่งกิ่งและอาจเป็นไปไม่ได้ที่จะกู้คืน (... )
stash drop
(" นำรัฐ stashed เดียวจากรายการสะสมเมื่อไม่มี <สะสม> จะได้รับมันเอาคนล่าสุด ( ... ).. ') ไม่ตอบคำถาม (' ฉันจะลบทั้งหมดของ Git ของฉันหยุดทำงานทันทีหรือไม่ ")?
git stash clear
เพื่อยืนยันว่าถูกลบทั้งหมดให้ใช้ -git stash list
git
เป็นไปไม่ได้ที่จะหา! git-scm.com/docs/git-stash
git help <command>
เป็นวิธีที่ดีที่สุดในการรับเอกสาร (และจริง ๆ แล้วมันค่อนข้างดี) ในกรณีนี้git help stash
แสดงให้เห็นชัดเจนว่าgit stash clear
เป็นการกระทำ (นี่ไม่ได้หยุดฉันจากการมาถึงก่อนและถอนคำตอบ ... แต่นั่นบอกคุณเกี่ยวกับฉันมากกว่าgit
: D)
มีสองวิธีในการลบที่ซ่อน:
$ git stash drop <stash_id>
หากคุณไม่จำเป็นต้องซ่อนโดยเฉพาะอย่างยิ่งคุณสามารถลบได้ด้วย:$ git stash clear
กับ:ใช้ทั้งคู่ด้วยความระมัดระวังอาจเป็นเรื่องยากที่จะคืนค่าการเก็บข้อมูลที่ถูกลบครั้งเดียว
คำสั่งนี้ช่วยให้คุณสามารถดูการเปลี่ยนแปลงที่เก็บไว้ทั้งหมด
git stash list
นี่คือคำสั่งต่อไปนี้ใช้เพื่อล้างการเปลี่ยนแปลงที่ถูกเก็บถาวรทั้งหมดของคุณ
git stash clear
ตอนนี้หากคุณต้องการลบการเปลี่ยนแปลงที่เก็บไว้อย่างใดอย่างหนึ่งจากพื้นที่เก็บ
git stash drop stash@{index} // here index will be shown after getting stash list.
หมายเหตุ:
git stash list
ช่วยให้คุณรับดัชนีจากพื้นที่ซ่อนของ git
git stash drop 'stash@{index}'
ด้วยเครื่องหมายอะโพสโทรฟี
ฉันต้องการเก็บ stash ล่าสุดบางอย่าง แต่ลบทุกอย่างอื่น
เนื่องจากการหยุดทั้งหมดได้รับการกำหนดหมายเลขใหม่เมื่อคุณดรอปใหม่นี่จึงเป็นเรื่องง่ายที่จะทำ หากต้องการลบการซ่อนทั้งหมดที่เก่ากว่า stash @ {19}:
while git stash drop 'stash@{20}'; do true; done
git stash pop 3
แทนได้หรือไม่? ฉันต้องการทราบว่าเราสามารถใช้การwhile
วนซ้ำและการหยุดชั่วคราวโดยใช้ค่าดัชนี
ฉันมีข้อกำหนดอื่นเช่นต้องมีการลบ stash เพียงไม่กี่รหัสด้านล่างจะมีประโยชน์ในกรณีนั้น
#!/bin/sh
for i in `seq 5 8`
do
git stash drop stash@{$i}
done
/ * จะลบจากดัชนี 5 ถึง 8 * /
for iterator in `seq 5 8`; git stash drop stash@{$iterator}; done
for i in `seq 4`; do git stash drop 'stash@{5}'; done
do
ถ้าคุณต้องการที่จะลบที่ซ่อนล่าสุดหรือที่ดัชนีใด ๆ -
git stash drop type_your_index
> git stash list
stash@{0}: abc
stash@{1}: xyz
stash@{1}: pqr
> git stash drop 0
Dropped refs/stash@{0}
> git stash list
stash@{0}: xyz
stash@{1}: pqr
หากคุณต้องการลบที่ซ่อนทั้งหมดในครั้งเดียว -
> git stash clear
>
> git stash list
>
คำเตือน : เมื่อเสร็จแล้วคุณจะไม่สามารถคืนการสะสมของคุณได้
หากต้องการลบการหยุดทั้งหมดที่เก่ากว่า 40 วันให้ใช้:
git reflog expire --expire-unreachable=40.days refs/stash
เพิ่ม--dry-run
เพื่อดูว่าระบบลบข้อมูลใด
ดูhttps://stackoverflow.com/a/44829516/946850สำหรับคำอธิบายและรายละเอียดเพิ่มเติม