Git ติดตาม filepermission git diff -p
และตีแผ่สิทธิ์ในการเปลี่ยนแปลงเมื่อมีการสร้างแพทช์ใช้ ดังนั้นสิ่งที่เราต้องการคือ:
- สร้างแพทช์กลับ
- รวมเฉพาะการเปลี่ยนแปลงการอนุญาต
- ใช้แพทช์กับสำเนาการทำงานของเรา
ในฐานะที่เป็นหนึ่งซับ:
git diff -p -R --no-ext-diff --no-color \
| grep -E "^(diff|(old|new) mode)" --color=never \
| git apply
คุณสามารถเพิ่มเป็นนามแฝงในการตั้งค่า git ของคุณ ...
git config --global --add alias.permission-reset '!git diff -p -R --no-ext-diff --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply'
... และคุณสามารถเรียกใช้ได้ผ่าน:
git permission-reset
หมายเหตุถ้าคุณใช้ shell bash
ให้ใช้'
แทน"
เครื่องหมายคำพูดล้อมรอบ!git
มิฉะนั้นจะถูกแทนที่ด้วยgit
คำสั่งสุดท้ายที่คุณรัน
thx เพื่อ @Mixologic สำหรับการชี้ให้เห็นว่าโดยเพียงแค่ใช้-R
ในgit diff
การยุ่งยากsed
คำสั่งไม่จำเป็น