Git stash ดูเหมือนจะทำสิ่งที่ฉันต้องการเป็นอย่างมากยกเว้นว่ามันยากสำหรับสคริปต์ราวกับว่าคุณไม่มีการเปลี่ยนแปลงจากนั้นgit stash; git stash popจะทำสิ่งที่แตกต่างกว่าถ้าคุณมีการเปลี่ยนแปลงในที่เก็บของคุณ
ดูเหมือนว่านั่นgit stash createคือคำตอบสำหรับปัญหานั้นและทุกอย่างทำงานได้ยกเว้นสิ่งหนึ่ง ... ฉันไม่สามารถกำจัดการสะสมที่สร้างขึ้นได้ มีวิธีใดในการกำจัดที่ซ่อนหรือไม่
เพื่อให้ชัดเจน 100% สิ่งที่ฉันทำ:
สร้างที่เก็บ:
~/tmp/a(master) $ git stash create
60629375d0eb12348f9d31933dd348ad0f038435
~/tmp/a(master) $ git st
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
~/tmp/a(master) $ git reset --hard
HEAD is now at 555d572 log message
ใช้ที่ซ่อน:
~/tmp/a(master) $ git apply 60629375d0eb12348f9d31933dd348ad0f038435
fatal: can't open patch '60629375d0eb12348f9d31933dd348ad0f038435': No such file or directory
~/tmp/a(master) $ git stash apply 60629375d0eb12348f9d31933dd348ad0f038435
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: b
#
ลบที่เก็บ: (ยกเว้นว่าบิตสุดท้ายนี้ใช้ไม่ได้)
~/tmp/a(master) $ git stash drop !$
git stash drop 60629375d0eb12348f9d31933dd348ad0f038435
'60629375d0eb12348f9d31933dd348ad0f038435' is not a stash reference
git stash applyทำงานได้ git applyความพยายามที่จะอ่านไฟล์แพทช์ท้องถิ่นซึ่งไม่ได้อยู่ ความจริงแล้วมันไม่ควรอยู่ที่นั่นและมันก็ไม่เคยทำงาน ฉันถูกล่อลวงให้ลบมันออกจากคำถาม แต่เนื่องจากมันช่วยได้มากมายในรูปแบบปัจจุบันของมันฉันจะปล่อยให้มันเป็นอย่างที่เป็นอยู่

git applyวิ่งในกล่องรหัสที่สองในขณะที่เขียนนี้ไม่ได้ใช้ปะ - ข้อความแสดงข้อผิดพลาดในผลลัพธ์บอกคุณนี้ ดังนั้นในความเป็นจริงคุณพยายามสร้างที่ซ่อน (ซึ่งใช้งานไม่ได้ดูความคิดเห็นด้านล่าง) ใช้ที่ซ่อนซึ่งไม่ได้ถูกสร้างขึ้นแล้ววางที่ซ่อนซึ่งไม่ได้สร้าง นี่คือเหตุผลที่คุณไม่ได้ทำงานอะไรเลย