ฉันพยายามดึง git และฉันได้รับข้อผิดพลาดต่อไปนี้:
การยกเลิกการเชื่อมโยงไฟล์ 'lib / xxx.jar' ล้มเหลว ฉันควรลองใหม่อีกครั้ง (y / n)
ไม่ว่าฉันจะเลือก y หรือ n เป็นไปไม่ได้ที่จะเข้าสู่สถานะที่ฉันสามารถดึงหรือดันได้
chmod
และ / หรือchown
ไฟล์ดังกล่าว
ฉันพยายามดึง git และฉันได้รับข้อผิดพลาดต่อไปนี้:
การยกเลิกการเชื่อมโยงไฟล์ 'lib / xxx.jar' ล้มเหลว ฉันควรลองใหม่อีกครั้ง (y / n)
ไม่ว่าฉันจะเลือก y หรือ n เป็นไปไม่ได้ที่จะเข้าสู่สถานะที่ฉันสามารถดึงหรือดันได้
chmod
และ / หรือchown
ไฟล์ดังกล่าว
คำตอบ:
ซึ่งโดยปกติจะหมายถึงกระบวนการที่ยังคงใช้ไฟล์เฉพาะนั้น (ยังมีตัวจัดการอยู่)
(บน Windows ProcessExplorer
ก็ดีในการติดตามกระบวนการชนิดนั้น)
ลองปิดโปรแกรมอื่น ๆ git pull
ของคุณและลองอีกครั้งของคุณ
โปรดทราบว่าคุณมีทางเลือกที่ตัวแปรGIT_ASK_YESNO
อัปเดตมกราคม 2019:
สิ่งนี้น่าจะแก้ไขได้มากขึ้นด้วย Git 2.21 (ไตรมาสที่ 1 ปี 2019) เนื่องจาก " git gc
" และ " git repack
" ไม่ได้ปิด packfiles ที่เปิดซึ่งพบว่าไม่จำเป็นก่อนที่จะลบออกซึ่งไม่สามารถใช้งานบนแพลตฟอร์มที่ไม่สามารถลบไฟล์ที่เปิดได้
สิ่งนี้ได้รับการแก้ไขแล้ว
ดูกระทำ 5bdece0 (15 ธันวาคม 2018) โดยโยฮันเน Schindelin (dscho
)
(รวมโดยJunio C Hamano - gitster
-ในการกระทำ 5104f8f , 18 มกราคม 2019)
gc
/repack
: ปล่อยแพ็คเมื่อจำเป็นบน Windows ไม่สามารถลบหรือเปลี่ยนชื่อไฟล์ได้หากยังคงมีการจัดการโดยกระบวนการ
เพื่อแก้ไขปัญหานั้นเราได้แนะนำclose_all_packs()
ฟังก์ชั่นก่อนหน้านี้เราตรวจสอบให้แน่ใจว่ามีการวางจำหน่ายชุดก่อนหน้า
git gc
นี้ในกรณีที่gc
ต้องการลบชุดที่ไม่ต้องการแล้วออกแต่นักพัฒนาซอฟต์แวร์คนนี้ลืมไปว่า
gc
ตัวเองต้องปล่อยแพ็คออกไปเช่นเมื่อรวมชุดทั้งหมดผ่าน--aggressive
ตัวเลือกในทำนองเดียวกัน
git repack -d
ต้องการลบแพ็คที่ล้าสมัยและดังนั้นจึงจำเป็นต้องปิดที่จับแพ็คทั้งหมดด้วย
อัปเดตมกราคม 2559
ควรแก้ไขใน Git 2.8 (มีนาคม 2016) (และดู Git 2.19, Q3 2018 ด้านล่าง)
ดูกระทำ d562102 , กระทำ dcacb1b , กระทำ df617b5 , กระทำ 0898c96 (13 มกราคม 2016) โดยโยฮันเน Schindelin (dscho
)
(รวมโดยJunio C Hamano - gitster
-ในการกระทำ 3c80940 , 26 มกราคม 2016)
fetch
: ปล่อยไฟล์แพ็คก่อนการรวบรวมขยะก่อนทำการ gc'ing อัตโนมัติเราต้องตรวจสอบให้แน่ใจว่าไฟล์แพ็คได้รับการปล่อยตัวในกรณีที่จำเป็นต้องทำการบรรจุใหม่และเก็บขยะ
codepaths จำนวนมากที่เรียกใช้ "
gc --auto
" ก่อนที่จะออกจากที่เก็บ packfiles จะถูกแม็พและปล่อยให้ตัวอธิบายไฟล์เปิดอยู่ซึ่งไม่เป็นมิตรกับระบบที่ไม่สามารถลบไฟล์ที่เปิดอยู่ได้
ตอนนี้พวกเขาปิดแพ็คก่อนที่จะทำ
ว่าการแก้ไขgit-for-widows
ออก 500
มองไปที่การทดสอบที่ใช้ในการตรวจสอบว่าวิธีการใหม่ในการแก้ปัญหาที่เป็นไปได้ (ตั้งแต่ Git 2.8 ยังไม่ออก) gc.autoPackLimit
จะเป็นที่จะยกระดับเทียม
git config gc.autoPackLimit 10000
git fetch
git config gc.autoPackLimit 50 # default value
git 2.8.4 (มิถุนายน 2016)ไม่พูดถึงปัญหา 755ซึ่งควรบรรเทาปัญหา ( กระทำ 2db0641 ):
ตรวจสอบให้แน่ใจว่าการจัดการไฟล์ชั่วคราวไม่ได้รับการสืบทอดโดยกระบวนการลูก
ที่จริงgit-for-windows
ปัญหา 500 ที่กล่าวถึงข้างต้นได้รับการแก้ไขจริง ๆ ด้วย Git 2.19, Q3 2018
โปรดดูที่ " Git - การยกเลิกการเชื่อมโยงไฟล์.idx
และ.pack
ล้มเหลว (กระบวนการเดียวที่เป็นเจ้าของการจัดการกับไฟล์นี้คือgit.exe
" )
นี่เป็นคำตอบเฉพาะของ Windows ดังนั้นฉันจึงทราบว่าไม่เกี่ยวข้องกับคุณ ... ฉันแค่รวมไว้เพื่อประโยชน์ของผู้ค้นหาในอนาคต
ในกรณีของฉันเป็นเพราะฉันใช้ Git จากบรรทัดคำสั่งที่ไม่ผ่านการตรวจสอบ "Run as Administrator" แก้ไขให้ฉัน
สำหรับฉันมันเป็นเพราะ Visual Studio พยายามโหลดไฟล์ที่เปลี่ยนแปลงทั้งหมดจากการดึง git gc
มีการรีเฟรชภาพสตูดิโอแล้วเรียกใช้
บน Windows โดยใช้ GitHub สำหรับ Windows ฉันมีข้อผิดพลาดคล้ายกันในเชลล์เมื่อทำงานgit gc
:
Unlink of file '.git/objects/pack/pack-0b40ae7eae9b83edac62e19c07ff7b4c175244f6.idx' failed. Should I try again? (y/n)
ฉันแก้ไขมันโดยปิด GitHub GUI
ลองรีสตาร์ท Apache หรือเว็บเซิร์ฟเวอร์อื่น ๆ เพราะอาจล็อคไฟล์บางไฟล์ได้
ปิด Visual Studio และ Rubymine และไม่ได้รับข้อผิดพลาดอีกครั้ง หนึ่งในนั้นคือผู้ร้าย
ปิด IDE git pull
ของคุณแล้วทำ มันจะทำงาน.
ฉันมีปัญหานี้ด้วย แต่ฉันพบว่ามันเป็น UltraEdit เนื่องจากฉันใช้ UE เพื่อจัดระเบียบและแก้ไขพื้นที่ทำงานของ eclipse ของฉัน ~~
อาจเป็นเพราะ UE มีหมายเลขอ้างอิงสำหรับไฟล์เฉพาะรุ่นเก่า Git จึงไม่สามารถยกเลิกการเชื่อมโยงได้
หลังจากฉันปิด UltraEdit ปัญหาจะไม่เกิดขึ้นอีก
สิ่งนี้เกิดขึ้นในกรณีของฉันโดย SimpLESS คอมไพเลอร์ LESS คุณต้องปิดมันลงใน systray
ปัญหาเกิดขึ้นเนื่องจากคุณมีโปรแกรมที่จัดการไฟล์เหล่านี้ ฉันมีข้อเสนอแนะที่คุณควรใช้ Unlocker เพื่อค้นหาโปรแกรมที่จัดการ:
ฉันเคยมีสิ่งนี้เกิดขึ้นใน Windows XP ทั้งที่มีข้อความติดอยู่ในลูปและสามารถลบออกได้โดยการตอบกลับ
ปัญหาที่ติดค้างอยู่ในวงถูกล้างออกโดยการปิด Git-GUI (ฉันใช้ git merge -i ใน bash shell)
เหตุการณ์อื่น ๆ ที่เกิดขึ้นอาจเป็นเพราะไฟล์จำนวนมากในที่เก็บของฉัน มันเกิดขึ้นส่วนใหญ่กับไฟล์. cod ซึ่งภายหลังฉันแยกออกจากการควบคุมเวอร์ชัน (ฉันมีเหตุผลในการติดตามอย่างตั้งใจ) ฉันเชื่อว่าสาเหตุอาจเกี่ยวข้องกับอัตราที่ Git ใช้ตัวจัดการไฟล์
ฉันสงสัยว่าปัญหาที่สามารถตอบได้โดยการตอบกลับเป็นเรื่องเกี่ยวกับ Windows หรือไม่เนื่องจากผู้โพสต์ก่อนหน้าสองคนพูดถึง Windows และไม่มีใครบอกว่าพวกเขามีปัญหากับระบบปฏิบัติการอื่น
ฉันเปิด PHPS รูปแบบปิดและทุกอย่างดี
ฉันมีปัญหาเดียวกันและฉันปิดโปรแกรมที่เกี่ยวข้องทั้งหมดจาก Window Task Manager อย่างไรก็ตามมันก็ยังไม่ทำงาน ส่วนที่น่าสนใจคือฉันใช้ "Git rebase" แทน "Git pull" และใช้งานได้!
ไม่มีคำตอบข้างต้นไม่ได้ผลสำหรับฉัน แต่ฉันใช้คำสั่ง git gc พร้อมตัวเลือกบังคับและมันแก้ไขกรณีของฉัน
'git gc --force'
[Windows 7, Run As Administrator => พร้อมรับคำสั่ง]
ลองเรียกใช้ตัวแก้ไขบรรทัดคำสั่งในโหมดผู้ดูแลและเรียกใช้คำสั่ง ช่วยและแก้ปัญหา :)
ในกรณีของฉันฉันมีวิธีการตัดแท็กเก่าทำให้เกิดปัญหา ฉันแก้ไขได้โดยยกเลิกการตั้งค่าดั้งเดิม:
git config --global --unset remote.origin.fetch '\+refs/tags/\*:refs/tags/\*'
จากนั้นเพิ่มสิ่งนี้เพื่อตัดกิ่งไม้ที่ถูกลบบนเซิร์ฟเวอร์:
git config --global fetch.pruneTags true
ฉันประสบข้อผิดพลาดเดียวกันและแก้ไขมันโดยปิดคราสและดึงอีกครั้งเมื่อไฟล์ถูกใช้งาน