Proses git lain tampaknya sedang berjalan di repositori ini

667

Saya mencoba mempelajari cara menggunakan Git dan telah membuat proyek kecil dengan file HTML, CSS, dan Javascript. Saya membuat cabang dari proyek saya yang pada dasarnya kosong dan kemudian membuat beberapa perubahan pada kode saya. Saya mencoba melakukan perubahan tetapi saya mendapatkan pesan kesalahan berikut:

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.

Memang, saya memang mengalami masalah ketika mencoba untuk melakukan proyek kosong saya sebelumnya dan hanya berhenti git bash karena saya tidak tahu bagaimana keluar dari tempat saya mendapatkan entah bagaimana.

Apakah ada cara bagi saya untuk memperbaikinya atau haruskah saya memulai repositori baru?

Matt Corby
sumber
1
Sepertinya pasti ada proses lain yang menjalankan rn, mungkin di tab terminal lain?
Vincent Rodomista
Buka task manager dan lihat apa lagi yang sedang berjalan. Anda mungkin juga bisa menggunakan Process Explorer, jika Anda menginstalnya.
Tim Biegeleisen
Coba gunakan git bash, perintah Line atau GUI maka Anda dapat membuka kunci git yang terkunci
SalindaKrish

Jawaban:

1296

Coba hapus index.lockfile di .gitdirektori Anda .

rm -f .git/index.lock

Masalah seperti itu umumnya terjadi ketika Anda menjalankan dua gitperintah secara bersamaan; mungkin satu dari command prompt dan satu dari IDE.

Shedage Rohit
sumber
7
Saya mendapat kesalahan berikut: rm: tidak dapat menghapus '. Git / index.lock': Perangkat atau sumber daya sibuk
Yuvraj Patil
8
hapus denganrm -f .git/index.lock
William Hampshire
Untuk CocoaPods, coba hapus Podfile.lock.
LinusGeffarth
1
Bekerja untuk saya juga, Terima kasih. Saya heran mengapa jawaban ini belum diterima. Urutan perintah: 1) find | grep '\ .lock $' 2) rm -f ./.git/index.lock
Ankush
4
Jika tidak ada index.lockfile di sana, periksa HEAD.lock· Menghapusnya memecahkan masalah untuk saya.
Daniel Shatz
64

Gunakan perintah di bawah ini di direktori root aplikasi. Ini akan menghapus file index.lock dan melepaskan kunci aktif.

rm .git/index.lock
MJ
sumber
Saya juga harus menutup Sublime-Text karena memiliki plugin git. IDE lain yang terhubung dengan git kemungkinan memiliki masalah yang sama
nick carraway
31

Menghapus pesan komit saya berhasil untuk saya.

rm .git/COMMIT_EDITMSG

Kemudian dikatakan.

fatal: tidak dapat mengunci ref 'HEAD': Tidak dapat membuat '.git / refs / heads / [nama-cabang-Anda] .lock': File ada.

Perhatikan bahwa nama cabang Anda mungkin berbeda dari saya. Anda dapat menghapus file kunci ini dengan melakukan;

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

Semoga ini bisa membantu seseorang.

Ibn Rushd
sumber
3
ini yang membantu saya, jawaban yang lain tidak membantu saya.
CodyMace
1
Ini bekerja ketika saya mencoba untuk melakukan dengan docker-compose di latar belakang.
John Spiteri
15

Ok saya akhirnya membuatnya bekerja dengan menjalankan '$ git rm .git / index.lock' ... Aneh karena saya melakukan itu beberapa kali sebelumnya tidak berhasil tetapi hei komputer kan?

Matt Corby
sumber
5
Tidak perlu digunakan di git rmsini, rmcukup saja. index.lockbukan file yang dimaksudkan untuk dilacak oleh git.
Matthieu Moy
8

Ini terjadi pada saya dan walaupun sumber daya terus memberi tahu saya file kunci ada, tidak ada file seperti itu di sana untuk saya hapus. Jadi saya baru saja memeriksa cabang lain dan kemudian kembali ke cabang asli dan melihat perubahan ini memperbaiki masalahnya.

Alex Sed
sumber
7

Ini mirip dengan metode di atas tetapi dalam kasus saya, saya memiliki beberapa dari mereka

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

dan bisa menghapus sekaligus dengan cara ini

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

Bagi saya masalahnya lebih sederhana, ini di pohon sumber jadi saya tidak yakin berapa banyak itu akan berlaku untuk solusi reguler tetapi saya tidak sengaja memiliki cabang master saya dipilih untuk mencoba membuat komit daripada perubahan yang tidak dikomit.

Ini biasanya tidak menjadi masalah, tetapi saya sudah terlebih dahulu memasukkan pesan komit sehingga saya bisa melacak apa yang saya lakukan untuk sprint kecil yang saya ikuti.

Pada dasarnya, saya memulai komit pada cabang yang tidak berkomitmen dan secara tidak sengaja mencoba untuk memulai komit lain di cabang master saya.

Vrezh Gulyan
sumber
4

Jika Anda menggunakan CocoaPods dan pada beberapa titik gagal memperbarui atau menginstal (membunuhnya secara manual atau sesuatu), coba

1) Menghapus index.lockfile (dalam .git/index.lock)

2) Hapus Podfile.lockfile Anda .

3) Lakukan yang baru pod update

4) Cobalah mengeluarkan perintah git yang gagal (dalam kasus saya itu adalah git add .)

cumanzor
sumber
4

Jika Anda pengguna windows akan ada kesalahan 'rm' is not recognized as an internal or external command. Itu karena rm adalah perintah Linux. Jadi di windows, Anda dapat menggunakan di bawah ini untuk menghapus index.lockfile di dalam .gitfolder

del -f .git/index.lock
Indrajith Ekanayake
sumber
3

Mungkin saja cabang Anda rusak buat cabang baru git branch #check branch. Saya telah membuat cabang baru dan berfungsi.

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 
Tarun Sharma
sumber
3

Meskipun ada alternatif di atas, tetapi itu tidak menyelesaikan masalah saya. Dalam kasus saya, saya menghapus plugin "git" di ./zshrc dan reboot komputer kemudian masalahnya hilang, saya kira plugin zsh telah melakukan sesuatu yang bertentangan dengan perintah git asli.

Brady Huang
sumber
3

Saya mendapat kesalahan ini sementara pod update. Aku dipecahkan dengan menghapus index.lockfile dalam cocoapods's .gitdirektori.

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

Mungkin membantu seseorang.

Haseeb Iqbal
sumber
2

gunakan perintah berikut jika Anda menghadapi proses git lain tampaknya sedang berjalan di repositori ini misalnya editor dibuka oleh 'git commit'. Harap pastikan semua proses dihentikan kemudian coba lagi. Jika masih gagal, proses git mungkin telah macet di repositori ini sebelumnya: hapus file secara manual untuk melanjutkan.

rm -f .git / index.lock

git reset dan setelah perintah reset menggunakan status git, git add, dan git commit -a atau git commit -m "pesan Anda", git push master asal.

Naveen
sumber
2

rm -f .git/index.locktidak membantu, karena saya memiliki file terkunci yang tidak dapat dihapus. Begitu,index.lock juga sudah ditangkap oleh beberapa aplikasi.

Saya mengunduh alternatif untuk Unlocker bernama Lock Hunter dan menghapus kedua file. Gitmenangkap mereka.

CoolMind
sumber
2

Saya memiliki masalah yang sama ketika saya mencoba mementaskan file di SourceTree.

Untuk mengatasinya, buka folder .git di direktori proyek dan hapus secara manual index.lock dan Anda selesai.

MayankD
sumber
Sebenarnya saya temukan di SourceTree bahwa biasanya cukup untuk menunggu beberapa detik dan coba lagi.
matt
2

Seandainya dapat membantu orang lain ... Saya mencoba dengan baris perintah rm -f .git/index.lockdan tidak bekerja (terminal tidak menunjukkan kesalahan). Saya langsung menuju folder .gitdan menghapus fileindex.lock file.

Catatan: .gitfolder terletak di repositori root Anda dan disembunyikan. Di mac: Cmd+ Shift+ .untuk melihat file tersembunyi.

TomCobo
sumber
2

Bagi saya solusinya sesederhana menutup IDE saya dan kemudian memeriksa. Rekan satu tim saya telah menerima PR saya dan menggabungkan kode melalui TFS. Menghapus file .lock tidak berfungsi.

Chloe Corrigan
sumber
2

Hapus index.lockdi sini:

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

Juga, jika repositori Anda memiliki submodula, hapus semua juga index.lockdi sini:

<path to your repo>/.git/modules/<path to your submodule>/index.lock
Manabu Nakazawa
sumber
1

Saya mencoba menghapus .git/indextetapi tidak berhasil, saya akhirnya menghapus go dan menghapus semua folder yang memiliki gonama di dalamnya, dan kemudian menginstal go lagi, dan itu berhasil!

John Balvin Arias
sumber
1

Untuk saya dengan alasan apa pun:

rm .git/index.lock

Tidak berfungsi, jadi saya hanya pergi ke file .git dan menghapusnya secara manual yang bekerja dengan fantastis.

Vadim F.
sumber
apa perbedaan antara jawaban ini dan jawaban yang diterima?
J. Doe
0

hanya untuk klarifikasi, bagi mereka yang bertanya-tanya mengapa rm dan del.

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

Anda bisa menambahkan -funtuk memaksa operasi yang berhasil.

Ande Caleb
sumber
0

Saya menghadapi masalah yang sama. Saya harus berbuat lebih banyak untuk menyelesaikan ini. Pertama saya menghapus index.lockkemudian saya kloning kode baru dari lokasi repositori git yang ada. Saya mengalami perubahan kode di lokasi yang terpisah. Saya menyalin .gitfolder dan .gitignorefile dan menempel di folder kode tempat saya membuat perubahan kode. Lalu saya mencoba komit dan mendorong, itu bekerja dengan lancar. Mungkin pemalsuan ini akan membantu jika masalah Anda tidak dengan solusi yang diberikan di atas.

Abhishek
sumber
0

Punya masalah yang sama menggunakan SourceTree . Tapi sama sekali tidak ada file index.lock di host saya. Saya telah menemukan file pack-refs.lock , dan setelah menghapusnya, masalahnya terpecahkan.

Vladimir
sumber
0

saya menghadapi masalah yang sama, masalah adalah saya mencoba untuk mendorong kode saya dengan xmlfile (digunakan sebagai kumpulan data) yang memiliki ukuran 1.3gb, jadi saya menambahkan file ini ke dalam .gitignoredan kemudian masalah terpecahkan

Dulanga Heshan
sumber
0

Jika Anda berakhir di sini berdasarkan judul pertanyaan ("Proses git lain tampaknya berjalan di repositori ini"), perhatikan bahwa jawaban yang diterima tidak akan langsung berlaku untuk Anda jika pesan dalam judul pertanyaan ini didahului oleh pesan lain seperti yang di bawah ini:

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

Dalam hal ini, Anda harus menghapus file itu (.lock) daripada .git / index.lock

derekbaker783
sumber