กระบวนการ git อื่นดูเหมือนว่ากำลังทำงานอยู่ในที่เก็บนี้


667

ฉันพยายามเรียนรู้วิธีการใช้ Git และได้สร้างโครงการเล็ก ๆ ด้วยไฟล์ HTML, CSS และ Javascript ฉันสร้างสาขาจากโครงการที่ว่างเปล่าโดยทั่วไปแล้วทำการเปลี่ยนแปลงรหัสของฉัน ฉันพยายามจัดเตรียมการเปลี่ยนแปลง แต่ได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.

จริงอยู่ที่ฉันเจอปัญหาที่พยายามทำโปรเจ็กต์ว่างเปล่าก่อนหน้านี้และเพิ่งเลิก git bash เนื่องจากฉันไม่รู้วิธีออกจากที่ที่ฉันได้รับมา

มีวิธีใดบ้างที่ฉันจะแก้ไขปัญหานี้หรือฉันควรเริ่มที่เก็บใหม่?


1
ดูเหมือนว่ามีกระบวนการอื่นที่กำลังเรียกใช้ rn อยู่ในแท็บเทอร์มินัลอื่นหรือไม่?
Vincent Rodomista

เปิดตัวจัดการงานและดูว่ามีอะไรกำลังทำงานอยู่ คุณอาจใช้ abld เพื่อใช้ Process Explorer ได้หากคุณติดตั้งแล้ว
ทิม Biegeleisen

ลองใช้ git bash, Command Line หรือ GUI จากนั้นคุณสามารถปลดล็อค git ที่ถูกล็อคได้
SalindaKrish

คำตอบ:


1292

ลองลบindex.lockไฟล์ใน.gitไดเรกทอรีของคุณ

rm -f .git/index.lock

ปัญหาดังกล่าวมักเกิดขึ้นเมื่อคุณรันgitคำสั่งสองคำสั่งพร้อมกัน อาจเป็นหนึ่งในพร้อมท์คำสั่งและอีกอันจาก IDE


7
ฉันได้รับข้อผิดพลาดดังต่อไปนี้: rm: ไม่สามารถลบ '.git / index.lock': อุปกรณ์หรือทรัพยากรไม่ว่าง
Yuvraj Patil

8
ลบด้วยrm -f .git/index.lock
William Hampshire

สำหรับ CocoaPods Podfile.lockพยายามที่จะลบ
LinusGeffarth

1
ทำงานให้ฉันด้วยขอบคุณ ฉันสงสัยว่าทำไมคำตอบนี้ไม่ได้รับการยอมรับว่าเป็นคำตอบ ลำดับคำสั่ง: 1) ค้นหา | grep '\ .lock $' 2) rm -f ./.git/index.lock
Ankush

4
หากไม่มีindex.lockไฟล์ให้ตรวจสอบHEAD.lock·ลบมันแก้ไขปัญหาสำหรับฉัน
Daniel Shatz

64

ใช้คำสั่งด้านล่างในไดเรกทอรีรากของแอปพลิเคชัน นี่จะเป็นการลบไฟล์ index.lock และปลดล็อคที่ใช้งานอยู่

rm .git/index.lock

ฉันต้องปิด Sublime-Text เพราะมีปลั๊กอินคอมไพล์ IDE อีกตัวที่เชื่อมต่อกับคอมไพล์น่าจะมีปัญหาเดียวกัน
nick carraway

31

การลบข้อความคอมมิชชันของฉันก็ใช้งานได้สำหรับฉัน

rm .git/COMMIT_EDITMSG

จากนั้นพูดว่า

ร้ายแรง: ไม่สามารถล็อก ref 'HEAD': ไม่สามารถสร้าง '.git / refs / heads / [your-branch-name] .lock': มีไฟล์อยู่

โปรดสังเกตว่าชื่อสาขาของคุณอาจแตกต่างจากของฉัน คุณสามารถลบไฟล์ล็อคนี้ได้โดยทำ

rm .git/refs/heads/[your-branch-name].lock

หวังว่านี่จะช่วยใครซักคน


3
นี่คือสิ่งที่ช่วยฉันคำตอบอื่น ๆ ก็ไม่ได้ช่วยอะไรฉัน
CodyMace

1
สิ่งนี้ทำงานได้เมื่อฉันพยายามคอมมิชชันกับนักเทียบท่าเขียนเป็นพื้นหลัง
John Spiteri

15

ตกลงฉันลงเอยด้วยการทำงานโดยใช้ '$ git rm .git / index.lock' ... มันแปลกเพราะฉันทำแบบนั้นสองสามครั้งก่อนจะไม่มีประโยชน์ แต่คอมพิวเตอร์ก็ใช่มั้ย


5
ไม่จำเป็นต้องใช้git rmที่นี่เพียงrmเพียงพอ index.lockไม่ใช่ไฟล์ที่ตั้งใจจะติดตามโดย git
Matthieu Moy

8

เรื่องนี้เกิดขึ้นกับฉันและในขณะที่ sourcetree คอยบอกฉันว่ามีไฟล์ล็อคอยู่ไม่มีไฟล์ดังกล่าวให้ฉันลบ ดังนั้นฉันจึงตรวจสอบสาขาอื่นแล้วกลับไปที่สาขาเดิมและสังเกตว่าการเปลี่ยนแปลงนี้แก้ไขปัญหาได้


7

มันคล้ายกับวิธีการข้างต้น แต่ในกรณีของฉันฉันมีหลายวิธี

.git/refs/heads/<branch_name>.lock

และสามารถลบทั้งหมดในครั้งเดียวด้วยวิธีนี้

find -name "*.lock" -exec xargs rm {} \;

4

สำหรับฉันปัญหานั้นง่ายกว่านี้อยู่ในแผนผังต้นไม้ดังนั้นฉันไม่แน่ใจว่าจะใช้กับโซลูชั่นปกติได้มากแค่ไหน แต่ฉันบังเอิญเลือกสาขาหลักของฉันที่พยายามทำคอมมิชชันแทนการเปลี่ยนแปลงที่ไม่มีข้อผูกมัด

ปกติจะไม่เป็นปัญหา แต่ฉันได้ป้อนข้อความยืนยันไว้แล้วล่วงหน้าเพื่อให้ฉันสามารถติดตามสิ่งที่ฉันกำลังทำเพื่อการวิ่งเล็กน้อยที่ฉันกำลังทำอยู่

โดยพื้นฐานแล้วฉันเริ่มต้นส่งมอบให้กับสาขาที่ไม่มีข้อผูกมัดและพยายามที่จะเริ่มส่งมอบให้กับสาขาหลักของฉัน


4

หากคุณกำลังใช้ CocoaPods และในบางจุดไม่สามารถอัพเดทหรือติดตั้ง (ฆ่าด้วยตนเองหรือบางสิ่งบางอย่าง) ให้ลอง

1) การลบindex.lockไฟล์ (ใน.git/index.lock)

2) ลบPodfile.lockไฟล์ของคุณ

3) ทำใหม่ pod update

4) ลองใช้คำสั่ง git ที่ล้มเหลว (ในกรณีของฉันมันคือ a git add .)


4

หากคุณเป็นหน้าต่าง'rm' is not recognized as an internal or external commandของผู้ใช้จะมีข้อผิดพลาด นั่นเป็นเพราะ rm เป็นคำสั่ง Linux ดังนั้นใน windows คุณสามารถใช้ด้านล่างเพื่อลบindex.lockไฟล์ภายใน.gitโฟลเดอร์

del -f .git/index.lock

3

มันอาจจะเกิดขึ้นสาขาของคุณเสียหายสร้างสาขาใหม่ git branch #check branch ฉันได้สร้างสาขาใหม่และทำงาน

branch -b "main"
git checkout -b "main"  #main is new branch
git add .
git commit -m "all files"
git remote add origin #**YOUR REPO**  https://github.com/tarun-techmarbles/wp-dump-sql-git-push.git
git push origin main  #push with new branch 

3

แม้ว่าจะมีทางเลือกข้างต้น แต่ก็ไม่ได้แก้ปัญหาของฉัน ในกรณีของฉันฉันลบปลั๊กอิน "git" ใน. /zshrc และรีบูตคอมพิวเตอร์จากนั้นปัญหาจะหายไปฉันเดาว่าปลั๊กอิน zsh ได้ทำสิ่งที่ขัดแย้งกับคำสั่ง git ดั้งเดิม


3

pod updateผมได้รับข้อผิดพลาดนี้ในขณะที่ ฉันจะแก้ไขได้โดยการลบindex.lockไฟล์ในcocoapods's .gitไดเรกทอรี

rm -f /Users/my_user_name/.cocoapods/repos/master/.git/index.lock

มันอาจช่วยใครซักคน


2

ใช้คำสั่งต่อไปนี้ในกรณีที่คุณกำลังเผชิญกับกระบวนการ git อื่นดูเหมือนว่ากำลังทำงานอยู่ในพื้นที่เก็บข้อมูลนี้เช่นตัวแก้ไขที่เปิดโดย 'git commit' โปรดตรวจสอบให้แน่ใจว่ากระบวนการทั้งหมดถูกยกเลิกแล้วลองอีกครั้ง หากยังคงล้มเหลวกระบวนการ git อาจล้มเหลวในที่เก็บนี้ก่อนหน้านี้: ลบไฟล์ด้วยตนเองเพื่อดำเนินการต่อ

rm -f .git / index.lock

git reset และหลังคำสั่ง reset ใช้สถานะ git, git add และ git commit -a หรือ git commit -m "ข้อความของคุณ", git push master origin


2

rm -f .git/index.lockไม่ได้ช่วยเพราะฉันมีไฟล์ล็อคที่ไม่สามารถลบได้ ดังนั้นindex.lockบางแอปพลิเคชันก็ถูกจับเช่นกัน

ฉันดาวน์โหลดตัวเลือก Unlocker ชื่อ Lock Hunter และลบทั้งสองไฟล์ Gitจับพวกเขา


2

ฉันประสบปัญหาเดียวกันเมื่อฉันพยายาม staged ไฟล์ใน SourceTree

เพื่อแก้ปัญหานี้ให้ไปที่โฟลเดอร์. git ในไดเรกทอรีโครงการและลบ index.lock ด้วยตนเองและเสร็จสิ้น


ที่จริงฉันพบใน SourceTree ซึ่งปกติแล้วจะเพียงพอในการรอสักครู่แล้วลองอีกครั้ง
แมตต์

2

ในกรณีที่สามารถช่วยคนอื่น ... ฉันลองใช้บรรทัดคำสั่งrm -f .git/index.lockและไม่ทำงาน (เทอร์มินัลไม่แสดงข้อผิดพลาดใด ๆ ) ฉันเพิ่งไปที่โฟลเดอร์.gitและลบindex.lockไฟล์โดยตรง

หมายเหตุ: .gitโฟลเดอร์ตั้งอยู่ในที่เก็บ root ของคุณและถูกซ่อนไว้ ใน mac: Cmd+ Shift+ .เพื่อดูไฟล์ที่ซ่อน


2

สำหรับฉันวิธีการแก้ก็ง่ายพอ ๆ กับการปิด IDE ของฉันแล้วเช็คเอาท์ เพื่อนร่วมทีมของฉันยอมรับการประชาสัมพันธ์ของฉันและรวมรหัสผ่านทาง TFS การลบไฟล์. lock ไม่ได้ผล


2

ลบindex.lockที่นี่:

<path to your repo>/.git/index.lock

นอกจากนี้หากที่เก็บของคุณมี submodules ให้ลบทั้งหมดindex.lockที่นี่เช่นกัน:

<path to your repo>/.git/modules/<path to your submodule>/index.lock

1

ฉันพยายามลบ.git/indexแต่ใช้งานไม่ได้ฉันลงเอยด้วยการถอนการติดตั้งไปและลบโฟลเดอร์ทั้งหมดที่มีgoชื่ออยู่แล้วติดตั้งไปอีกครั้งและมันทำงานเอง!


1

สำหรับฉันด้วยเหตุผลใดก็ตาม:

rm .git/index.lock

ใช้งานไม่ได้ดังนั้นฉันเพิ่งไปที่ไฟล์. git และลบด้วยตนเองซึ่งทำงานได้อย่างน่าอัศจรรย์


อะไรคือความแตกต่างระหว่างคำตอบนี้กับคำตอบที่ยอมรับ?
J. Doe

0

เพียงเพื่อความกระจ่างสำหรับผู้ที่สงสัยว่าทำไม RM และ del

rm .git/index.lock - on a unix/linux system
del .git/index.lock - on a windows cmd prompt

คุณสามารถเพิ่ม-fเพื่อบังคับการดำเนินการที่ใช้งานได้


0

ฉันประสบปัญหาเดียวกัน ฉันต้องทำมากกว่านี้เพื่อแก้ไขปัญหานี้ ก่อนอื่นฉันก็ลบindex.lockแล้วฉันโคลนรหัสสดจากที่ตั้งที่เก็บ git ที่มีอยู่ ฉันมีการเปลี่ยนแปลงรหัสของฉันในตำแหน่งที่แยกกัน ฉัน copiped .gitโฟลเดอร์และ.gitignoreไฟล์และวางในโฟลเดอร์รหัสที่ฉันได้ทำการเปลี่ยนแปลงรหัส จากนั้นฉันก็พยายามที่จะกระทำและผลักดันมันทำงานได้อย่างราบรื่น อาจเป็นสิ่งที่ไม่เหมาะสมหากปัญหาของคุณไม่ได้รับการแก้ไขข้างต้น


0

มีปัญหาเดียวกันโดยใช้SourceTree แต่ไม่มีไฟล์index.lockในโฮสต์ของฉันเลย ฉันพบไฟล์ที่บรรจุแล้ว - ล็อคและหลังจากลบมันปัญหาได้รับการแก้ไข


0

ฉันประสบปัญหาเดียวกันปัญหาคือฉันพยายามที่จะผลักดันรหัสของฉันด้วยxmlไฟล์ (ใช้เป็นชุดข้อมูล) ซึ่งมีขนาด 1.3gb ดังนั้นฉันจึงเพิ่มไฟล์เหล่านี้ลงใน.gitignoreแล้วแก้ไขปัญหา


0

หากคุณจบที่นี่ตามชื่อของคำถาม ("กระบวนการ git อื่นดูเหมือนว่าจะทำงานในพื้นที่เก็บข้อมูลนี้") โปรดทราบว่าคำตอบที่ยอมรับจะไม่สามารถใช้ได้โดยตรงกับคุณหากข้อความในชื่อคำถามนี้นำหน้าด้วยข้อความอื่นเช่น ด้านล่าง:

fatal: cannot lock ref 'HEAD': Unable to create '/<PATH>/<TO>/<REPO>/.git/refs/heads/<BRANCH>.lock': File exists.

ในกรณีนี้คุณควรลบไฟล์นั้น (.lock) แทน. git / index.lock

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.