ดังนั้นฉันไม่แน่ใจว่าทำไมหัวข้อนี้จึงตกตะลึงมาก ฉันสามารถตั้งชื่อ stash ด้วยการกดและการบันทึกที่ไม่สนับสนุนและฉันสามารถใช้ regex เพื่อดึงกลับมาพร้อมกับการใช้:
วิธีการเก็บซ่อน Git เพื่อใช้ชื่อที่จะใช้
$ git stash push -m "john-hancock"
$ git stash apply stash^{/john-hancock}
ดังที่ได้กล่าวมาแล้วคำสั่งบันทึกเลิกใช้แล้ว แต่ก็ยังใช้งานได้ดังนั้นคุณสามารถใช้สิ่งนี้กับระบบเก่าที่คุณไม่สามารถอัปเดตพวกเขาด้วยการโทรแบบกด ต่างจากคำสั่ง push ไม่จำเป็นต้องใช้สวิตช์ -m กับการบันทึก
// save is deprecated but still functional
$ git stash save john-hancock
มีปัญหากับป๊อปและวาง
ฉันไม่เชื่อว่ามันใช้งานได้กับป๊อป แต่ฉันคิดว่านั่นเป็นเพราะป๊อปทำงานได้ไม่ดีหลังจากการสมัครและ regex ไม่เป็นมิตร นั่นเป็นเพียงลางสังหรณ์ ฉันยังไม่ได้ทดสอบ
นี่คือ Git 2.2 และ Windows 10
หลักฐานภาพ
นี่คือภาพเคลื่อนไหว GIF ที่สวยงามที่แสดงให้เห็นถึงกระบวนการ
ลำดับเหตุการณ์
GIF ทำงานได้อย่างรวดเร็ว แต่ถ้าคุณมองกระบวนการก็คือ:
- คำสั่ง ls แสดงไฟล์ 4 ไฟล์ในไดเรกทอรี
- แตะ example.html เพิ่มไฟล์ที่ 5
- git stash push -m "john-hancock" -a (-a มีไฟล์ที่ไม่ได้ติดตาม)
- คำสั่ง ls แสดงไฟล์ 4 ไฟล์หลังจาก stash หมายถึง stash และการฮาร์ดรีเซ็ตโดยนัยทำงาน
- git stash ใช้ stash ^ {/ john-hancock} วิ่ง
- คำสั่ง ls แสดงรายการไฟล์ 5 ไฟล์ซึ่งแสดงไฟล์ example.html กลับมาซึ่งหมายความว่าคำสั่ง git stash Apply ใช้งานได้
มันสมเหตุสมผลหรือไม่
พูดตรงไปตรงมาฉันไม่แน่ใจว่าประโยชน์ของวิธีนี้คืออะไร มีค่าในการให้ชื่อที่ซ่อน แต่ไม่ใช่การดึง อาจจะเขียนสคริปต์กระบวนการที่จะเป็นประโยชน์ แต่ก็ยังง่ายกว่าที่จะเพียงแค่ป๊อปซ่อนโดยใช้ชื่อ
$ git stash pop 3
$ git stash apply 3
นั่นดูง่ายกว่าสำหรับฉันมากกว่า regex
git stash push -m stashname
เป็นไวยากรณ์ปัจจุบันgit stash save stashname
เลิกใช้แล้ว