Git - fatal: '/path/my_project/.git/index.lock' oluşturulamıyor: Dosya var


805

Proje ağacımı git repo'ya taşımaya çalıştığımda hala bu hata iletisini alıyorum.

Bu projeyle dizinimin izinlerini kontrol ettim ve bunlar 777'de ayarlandı. Dizinde ayarladığım terminalde my_project:

git init

ve sonra denersem

git ekleyin.

veya

git commit -m "ilk yükleme"

bu yüzden hatayı alacağım

fatal: Unable to create '/path/my_proj/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

Ben de yeni bir repo oluşturmaya çalıştı ve orada taahhüt, ama ne yazık ki hala aynı hata mesajı.

Sorunun nedeni nedir?


1
Farklı bir terminalde su ile giriş yaptığım için bu sorunu yaşadım, ilk her şeye geri dönerek her şey yolunda gitti
maazza


3
kardeşim ben aynı sorunu vardı, "git add. veya git commit -m" ilk yükleme "" yerine "sudo git add. veya git commit -m" first upload "" kullanın
mehdi zahrane

Bunun başına .git dosya izinlerini değiştirerek tamir ettim stackoverflow.com/questions/14127255/... mahshid Zeinaly gelen cevaba bakın
vikramvi

Yanıtlar:


1739

Deneyin

rm -f ./.git/index.lock

Havuz dizininizde. Hata iletisi, normalde neye neden olduğu konusunda açıktır, bu nedenle çalışan başka bir git işleminiz yoksa (bu normal durumdur), devam edin ve bu dosyayı silin.


7
Otomatik olarak gerçekleşmez. git pushDeğişikliklerinizi web sunucusuna göndermek için komutu yürütmeniz gerekir . Bunun nasıl çalıştığına dair ayrıntılar burada: gitready.com/beginner/2009/01/21/pushing-and-pulling.html
Raphael R.

9
Aynı sorunu yaşıyorum ama .git / index.lock dosyası var gibi görünmüyor çünkü bu şekilde çözemiyorum: touch .get/index.lockdönertouch: .get/index.lock: No such file or directory
emersonthis

24
Emerson, var olmayan .git yerine .get arıyor gibisiniz.
Apie

3
İzin reddedildi Git'i kullandığınız kullanıcıya dosya üzerinde okuma / yazma izinleri vermeniz gerektiği anlamına gelir. Chmod komutunu kontrol edin (* nix'te veya Özellikler -> Windows'da Güvenlik sekmesi)
Stijn de Witt

9
Hatanızda "İzin Reddedildi" yazıyorsa, dosyaları büyük olasılıkla başka bir yerden kopyaladınız ve .git dizini üzerinde izinleriniz yok. Kullanım ls -lsonra, izinleri görmek kullanımı sudo chown -R username ./*ve sudo chgrp -R username ./*projedeki tüm dosyalar için kendi için değişiklik, kullanıcı ve grup.
chech

158

Windows'ta bunu repo dizinindeki komut isteminde yapın:

cd .git
del index.lock

GÜNCELLEME: Dalları değiştirmeye çalışmadan önce üzerinde çalıştığım dosyaları kapattıktan sonra bir dakika beklersem bu işlemi yapmam gerekmediğini fark ettim. Bazen bu sorun git yavaş bir dosya sistemi yakalamak nedeniyle oluşur düşünüyorum. Git konusunda daha bilgili olan diğer geliştiriciler bunun doğru olduğunu düşünürlerse karışabilirler.


3
Garip, dosya hakkında hata alıyorum ama sonra cmd.exe dosyasını silmeye çalıştığınızda, dosya bulunamadı diyor mutlak ve göreli yolları ile aynı sonuç. Ama Git Bash'de (ile rm -f index.lock) çalışıyor
Juha Untinen

Benim durumumda, Sourcetree yeniden başlatıldıktan sonra "Getir" i çalıştırdım ve çalıştım.
maxivis

32

Xcode'dan çıkmayı deneyin - git istemcisi olduğu için komut satırında git ile ilgili sorunları önlemek için Xcode'dan çıkmanız gerekir.


4
Güzel! Xcode VE diğer Git istemcilerinin suçlu olabileceğini unutmayın. Benim durumumda gitX kapanışını da aldı.
NSTJ

Kilit dosyamı 10 kez silmek zorunda kaldıktan sonra bu sabah nihayet bu cevap üzerine tökezledim. Xcode'un nasıl açıldığını bilmiyorum ama iş akışımı çöpe attığımdan emindim. Bahşiş için teşekkürler!
Cloudkiller

24

Aynı sorunu yaşıyordum. denedim

rm -f ./.git/index.lock 

ve konsol bana bir hata mesajı verdi. Sonra denedim

rm --force ./.git/index.lock

ve işe yaradı.

İyi şanslar! Bu süper çalışıyor


Benim durumumda .git klasörünü göremiyorum. Sadece ./ ve ../ gizli dizinin endişe kaynağı olduğunu gördüm.

Ne tür bir bilgisayardasınız?
Olivia Steger

18

.Git dizinimde index.lock dosyası yoktu. Yani, Git Bash kabuğunu kullanarak koştum ...

cd .git
touch index.lock
rm index.lock

Touch komutu dosyayı oluşturdu ve sorun ortadan kalktı.


Bu neden reddedildi? OP ile benzer hata iletisini aldım. Bu beni düzeltti ve belki başkalarına yardım edebilirdi.
John Livermore

1
Bunun hafif bir varyantını yaşadım: (1) Hata mesajını yaşadım ve farklı 'düzeltmeler' denedim; (2) Bunun index.lockolmadığını buldum ; (3) Yukarıdaki touchkomutu kullandım; (4) git istemcim normal çalışmayı durdurdu (en iyi ihtimalle tarama işlemine yavaşladı); (5) Sildim index.lock; (6) depo tekrar normal şekilde çalışmaya başladı.
clarpaul

Kesinlikle downvoted olmamalı, benim sorun dizildi. Bir index.lock dosyam yoktu, ama bir tane oluşturup daha sonra kaldırdım, taahhüt işe yaradı.
Bynho

touch index.lockJohn * NIX üzerinde olduğunu ima ediyor, ama ben sadece Windows 10'da eşdeğer yaptım ( index.lockbir metin editörü ile dosya oluşturun , hemen silin ve kâr edin) ve sorun gitti.
Ruffin

1
@Spark güncellendi ...
John Livermore

13

rootKullanıcıyı kullanarak yanlışlıkla depo oluşturdunuz mu?

Sadece git depoyu rootkullanıcı olarak oluşturdum .

Git deposunu sildim ve onsuz tekrar oluşturdum sudove işe yarıyor.


1
Yeap, hepsi bu. Teşekkürler
Natassia Tavares

9

Ben de bu sorunu var, ve gerçekten bir izin sorunu buluyorum. böylece bunu:

sudo chown -R : .git #change group
sudo chmod -R 775 .git #change permission

o zaman ererything harika ve gaa başarıdır.

ve sonra gp kullanıyorum, neredeyse aynı hatayı başka bir hata alıyorum

sudo chown -R "${USER:-$(id -un)}" . #use this can fix the problem

parlak, bu ne yapar? "$ {USER: - $ (id -un)}"
Nick

7

Mac OS X'te bunu repo dizinindeki komut isteminde yapın:

cd .git
rm index.lock

1
Böyle bir dosya veya dizin yok
Channox

5

#intelliJIDE'lerden birini kullanıyorsanız ve bu iletiyi alıyorsanız (kullanıyorum #webtorm), lütfen bu sorunun proje klasörlerinden birini (ayarlar içinde) gizlemesinden kaynaklanabileceğini ve bunun GITbirleştirilmesini engelleyebileceğini unutmayın .


5

Benim için çalışan çözüm, çalışan git işlemi editör tarafından başlatıldığından yüce metni kapatıyordu.


Son zamanlarda Sublime Text eklentisi GitSavvy'yi yükledim ve o zamandan beri bu hatayı aldım. İpucu için teşekkürler, @snorkelzebra
Kitze

5

Denedikten sonra:

rm -f ./.git/index.lock

olsun:

rm: 'index.lock' bağlantısını kaldıramıyor: İzin reddedildi

Git kullanıyor olabilecek tüm yazılımları kapatmayı deneyin. Kaynak Ağacı ve Visual Studio'yu açtım ve her iki komutu da kapattıktan sonra çalıştı.


5

Windows'da, kilit dosyasını yalnızca Görev Yöneticisi'ndeki tüm Git Windows (32bit) işlemleri için Görevi Sonlandırdıktan sonra silebiliyorum.

Çözüm (Win 10)

1. Görev Yöneticisi'ndeki tüm Git Windows (32bit) işlemleri için Görevi Sonlandır

2. .git / index.lock dosyasını silin


4

Benim durumumda çözüm 5 dakika beklemekti. Açıkçası önceki operasyonum hala devam ediyordu ama bunu bilmiyordum. Kaplumbağa git pencerelerde kullanıyordum.



4

Dosyayı kaldırmaktan daha iyi bir çözüm olduğunu düşünüyorum (ve Tanrı sudo ile bir dosya kaldırırken / oluştururken bir sonraki adımda ne olacağını biliyor):

git gc

3

Sorununuz varsa .git/index.lockaşağıdaki komutu kullanarak silin.

Komut:

sudo rm -rf .git / index.lock


3

Birçok yöntemle birkaç kez denedim ama bu benim için çalıştı (PyCharm'ın terminalini kullandım):

$ cd .git/

$ rm -f index.lock

Sonra tekrar boş bir git repo oluşturmaya çalıştım:

$ git init

$ git add .

$ git commit -m "commit msg"

3

Bu bir alt modülse, bunu depo dizininizde deneyin:

rm -f ../.git/modules/submodule-name/index.lock

alt modül adını alt modül adınızla değiştirin.


2

Bu sorunun çözümü, dizindeki üç xcode / project dosyasını kopyalayıp sonra yeni dizin (başka bir yerde) oluşturup üç dosyayı / dizini yapıştırmaktır.


2

Ayrıca git işlemini de öldürebiliriz. Git için GUI uygulaması aracılığıyla aynı sorunu alıyorum, bir şeyler ters gidiyor ve git bazı sonsuz çalışma yapar. Öldürme işlemi git ile çalışan uygulamayı dondurur, sadece yeniden başlatın ve her şey yoluna girecek.


2

Her ne nedenle olursa olsun, bir bulut hizmeti (dropbox, sürücü, onedrive, vb.) Tarafından senkronize edilen bir klasörden bir rebase yapıyorsanız, rebase sırasında izinlere müdahale edeceğinden senkronizasyonu duraklatmanız veya kapatmanız gerekir. .



2

Dizin iznimi değiştirdim, bu yüzden izinle ilgili olabileceğini biliyordum. Benim durumumda istenmeyen (_www) kullanıcıları kaldırdım ve ardından tüm içeriğe değiştirerek uygulayarak herkese okuma / yazma izni uyguladım. Bu Mac'te

Mac'te Dizin İzni


2

Tüm kaldırma komutları benim için işe yaramadı git sağlanan yolu kullanarak oraya gitmek ve daha sonra el ile silmek oldu.


2

Bunu yapmak için Atom platformio-atom-ide-terminal Eklentisini KULLANMAYIN . DISTRO'NUZUN TERMİNALİNİ DOĞRUDAN KULLANIN.

Yeniden basma / squishing işlemleri yaparken bu hatayı almaya devam ettim ve birkaç kez daha önce yapmış olduğum için nedenini bilmiyordum.

Kaç kez sileceğimin önemi yoktu index.lockDosyayı , her defasında başarısız olurdu.

Ben kullanıyordum çünkü çıkıyor oldu ATOM EDITOR terminali eklentisi. Ubuntu ile birlikte gelen terminali kullandığımda bir cazibe gibi çalıştı.


2

sadece D: /project/androidgc/.git/ bu dizine gidin ve benim için çalıştı index.lock silin.


1

Birisi git svn kullanıyorsa, aynı sorun vardı ama orada olmadığı için dosyayı kaldıramadı !. İzinleri kontrol ettikten, dosyaya dokunduktan ve sildikten sonra başka bir şey hatırlamıyorum, bu hile yaptı:

  • ana dalı kontrol edin.
  • git svn rebase (master'da)
  • üzerinde çalıştığınız şubeyi kontrol edin
  • git svn rebase

1

Biraz ekleme çünkü gerçek çözümü (benim için) almak için farklı cevaplar kullanmak zorunda kaldım.

Bu benim için yaptı:

  1. Üzerinde çalıştığınız şubeyi açın
  2. Terminali aç (Git GUI'de terminal kullanıyorum)
  3. Komutta yaz: cd .git
  4. Komutta yaz: rm -f index.lock

Bazıları -Forceyerine kullanmak zorunda kalabilir -f. Sen gibi, terminal şey bir komut yürüterek terminalin komut satırları kontrol edebilirsiniz: git help.


0

Tüm çözümler doğru:

Just remove .git from your corrupted repository, 

then copy this file if back from another clone (if you don't have it in another machine, just clone it).

Sonunda, benim için farkı yaratan şey:

  • Yeni .git klasörünü açmak veya kopyalamak için sudo kullanmaktan kaçının . Gitmek için süper kullanıcı haklarını kullanırsanız Git'in .git klasörüne erişimi olmaz

0

Ben repo (yani .git olduğu dizin) kök klasörüne karşılık gelen dizinin bir alt dizindeyken bu gerçekleşti. Kök dizine geçmek sorunu çözdü - sadece foo.ext yerine / klasör / foo.ext yoluna gitmeniz gerektiğinden tüm dosya referanslarını biraz daha zor hale getirme pahasına

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.