Một quá trình git khác dường như đang chạy trong kho lưu trữ này


664

Tôi đang cố gắng học cách sử dụng Git và đã tạo một dự án nhỏ với tệp HTML, CSS và Javascript. Tôi đã tạo một nhánh từ dự án cơ bản trống của mình và sau đó thực hiện một số thay đổi cho mã của tôi. Tôi đã thử dàn dựng các thay đổi nhưng tôi nhận được thông báo lỗi sau:

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.

Được cho phép, tôi đã gặp phải vấn đề khi cố gắng thực hiện dự án trống của mình trước đó và chỉ thoát khỏi git bash vì tôi không biết làm thế nào để thoát khỏi nơi mà tôi đã nhận được bằng cách nào đó.

Có cách nào để tôi khắc phục điều này hay tôi chỉ nên bắt đầu một kho lưu trữ mới?


1
Có vẻ như chắc chắn có một quá trình khác đang chạy rn, có thể trong một tab thiết bị đầu cuối khác?
Vincent Rodomista

Mở trình quản lý tác vụ và xem những gì khác đang chạy. Bạn cũng có thể sử dụng Process Explorer nếu bạn đã cài đặt.
Tim Biegeleisen

Hãy thử sử dụng git bash, dòng Line hoặc GUI sau đó bạn có thể mở khóa git bị khóa
SalindaKrish

Câu trả lời:


1282

Hãy thử xóa index.locktập tin trong .gitthư mục của bạn .

rm -f .git/index.lock

Những vấn đề như vậy thường xảy ra khi bạn thực hiện gitđồng thời hai lệnh; có thể một từ dấu nhắc lệnh và một từ IDE.


7
Tôi đã gặp lỗi sau: rm: không thể xóa '.git / index.lock': Thiết bị hoặc tài nguyên bận
Yuvraj Patil

8
xóa bằngrm -f .git/index.lock
William Hampshire

Đối với CocoaPods, hãy thử loại bỏ Podfile.lock.
LinusGeffarth

1
Làm việc cho tôi quá, Cảm ơn. Tôi tự hỏi tại sao câu trả lời này chưa được đánh dấu là chấp nhận. Trình tự lệnh: 1) find | grep '\ .lock $' 2) rm -f ./.git/index.lock
Ankush

4
Nếu không có index.locktập tin nào ở đó, hãy kiểm tra HEAD.lock· Loại bỏ nó đã giải quyết vấn đề cho tôi.
Daniel Shatz

64

Sử dụng lệnh dưới đây trong thư mục gốc của ứng dụng. Thao tác này sẽ xóa tệp index.lock và giải phóng khóa hoạt động.

rm .git/index.lock

Tôi cũng đã phải đóng Sublime-Text vì nó có plugin git. Một IDE khác được kết nối với git có thể có cùng một vấn đề
nick carraway

31

Xóa tin nhắn cam kết của tôi làm việc cho tôi.

rm .git/COMMIT_EDITMSG

Rồi nó nói.

fatal: không thể khóa ref 'HEAD': Không thể tạo '.git / refs / Heads / [your-Branch-name] .lock': Tệp tồn tại.

Hãy lưu ý rằng tên chi nhánh của bạn có thể khác với tên của tôi. Bạn có thể xóa tập tin khóa này bằng cách làm;

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

Hy vọng điều này sẽ giúp được ai đó.


3
đây là những gì đã giúp tôi, những câu trả lời khác không làm gì cho tôi
CodyMace

1
Điều này hoạt động khi tôi đã cố gắng cam kết với docker-compose trong nền.
John Spiteri

15

Ok tôi cuối cùng đã làm cho nó hoạt động bằng cách chạy '$ git rm .git / index.lock' ... Thật kỳ lạ bởi vì tôi đã làm điều đó một vài lần trước đây nhưng không thành công nhưng máy tính phải không?


5
Không cần sử dụng git rmở đây, chỉ cần rmlà đủ. index.lockkhông phải là một tập tin có nghĩa là được theo dõi bởi git.
Matthieu Moy

8

Điều này đã xảy ra với tôi và trong khi sourcetree liên tục nói với tôi rằng tệp khóa tồn tại, không có tệp nào ở đó để tôi xóa. Vì vậy, tôi chỉ kiểm tra một chi nhánh khác và sau đó quay trở lại chi nhánh ban đầu và nhận thấy sự thay đổi này đã khắc phục vấn đề.


7

Nó tương tự như các phương pháp trên nhưng trong trường hợp của tôi, tôi đã có một vài trong số đó

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

và đã có thể loại bỏ tất cả cùng một lúc bằng cách này

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

4

Đối với tôi, vấn đề đơn giản hơn, đây là ở cây nguồn nên tôi không chắc nó sẽ áp dụng được bao nhiêu cho các giải pháp thông thường nhưng tôi đã vô tình chọn nhánh chính của mình cố gắng thực hiện một cam kết thay vì các thay đổi không được cam kết.

Điều này thường không phải là một vấn đề nhưng tôi đã nhanh chóng nhập một thông điệp cam kết để tôi có thể theo dõi những gì tôi đang làm cho lần chạy nước rút nhỏ mà tôi đang thực hiện.

Về cơ bản, tôi đã bắt đầu một cam kết trên nhánh không được cam kết và vô tình cố gắng bắt đầu một cam kết khác trên nhánh chính của mình.


4

Nếu bạn đang sử dụng CocoaPods và tại một số điểm đã thực hiện cập nhật hoặc cài đặt (thủ công giết nó hoặc một cái gì đó), hãy thử

1) Xóa index.locktệp (trong .git/index.lock)

2) Xóa Podfile.locktập tin của bạn .

3) Làm mới pod update

4) Thử phát lệnh git bị lỗi (trong trường hợp của tôi là a git add .)


4

Nếu bạn là người dùng windows thì sẽ có lỗi 'rm' is not recognized as an internal or external command. Đó là bởi vì rm là một lệnh Linux. Vì vậy, trong windows, bạn có thể sử dụng bên dưới để xóa index.locktệp trong .gitthư mục

del -f .git/index.lock

3

Nó có thể xảy ra chi nhánh của bạn bị hỏng tạo chi nhánh git chi nhánh mới #check chi nhánh. Tôi đã tạo ra một chi nhánh mới và làm việc.

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

Mặc dù có một giải pháp thay thế ở trên, nhưng điều đó không giải quyết được vấn đề của tôi. Trong trường hợp của tôi, tôi xóa plugin "git" trong ./zshrc và khởi động lại máy tính thì vấn đề không còn nữa, tôi đoán plugin zsh đã làm gì đó xung đột với lệnh git ban đầu.


3

Tôi đã nhận được lỗi này trong khi pod update. Tôi giải quyết nó bằng cách xóa các index.locktập tin trong cocoapods's .gitthư mục.

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

Nó có thể giúp ai đó.


2

sử dụng lệnh sau trong trường hợp bạn đang đối mặt Một quy trình git khác dường như đang chạy trong kho lưu trữ này, ví dụ như trình soạn thảo được mở bởi 'git commit'. Vui lòng đảm bảo tất cả các quy trình được chấm dứt sau đó thử lại. Nếu vẫn không thành công, một quá trình git có thể đã bị lỗi trong kho lưu trữ này trước đó: xóa tệp theo cách thủ công để tiếp tục.

rm -f .git / index.lock

git reset và sau khi thiết lập lại lệnh sử dụng trạng thái git, git add và git commit -a hoặc git commit -m "tin nhắn của bạn", git đẩy gốc master.


2

rm -f .git/index.lockkhông giúp được gì, vì tôi có một tập tin bị khóa không thể xóa được. Vì vậy, index.lockcũng đã bị bắt bởi một số ứng dụng.

Tôi đã tải xuống một giải pháp thay thế cho Unlocker có tên Lock Hunter và xóa cả hai tập tin. Gitbắt chúng


2

Tôi gặp vấn đề tương tự khi tôi cố gắng dàn dựng tệp trong SourceTree.

Để giải quyết vấn đề này, hãy chuyển đến thư mục .git trong thư mục dự án và xóa thủ công index.lock và bạn đã hoàn tất.


Trên thực tế tôi thấy trong SourceTree rằng thường là đủ để chờ vài giây và thử lại.
matt

2

Trong trường hợp có thể giúp đỡ người khác ... Tôi đã thử với dòng lệnh rm -f .git/index.lockvà không hoạt động (thiết bị đầu cuối không hiển thị bất kỳ lỗi nào). Tôi chỉ cần trực tiếp đến thư mục .gitvà xóa các index.locktập tin.

Lưu ý: .gitthư mục nằm trong kho lưu trữ gốc của bạn và bị ẩn. Trong mac: Cmd+ Shift+ .để xem các tập tin ẩn.


2

Đối với tôi, giải pháp đơn giản như đóng IDE của tôi và sau đó kiểm tra. Một đồng đội của tôi đã chấp nhận PR của tôi và hợp nhất mã thông qua TFS. Xóa các tệp .lock không hoạt động.


2

Xóa index.lockở đây:

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

Ngoài ra, nếu kho lưu trữ của bạn có các mô hình con, hãy xóa tất cả index.lockở đây:

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

1

Tôi đã cố xóa .git/indexnhưng không được, cuối cùng tôi gỡ cài đặt go và xóa tất cả các thư mục có gotên trong đó, sau đó cài đặt lại, và nó hoạt động!


1

Đối với tôi vì bất kỳ lý do:

rm .git/index.lock

Không hoạt động, vì vậy tôi chỉ đi đến tệp .git và xóa nó bằng tay, nó hoạt động rất tuyệt vời.


sự khác biệt giữa câu trả lời này và câu trả lời được chấp nhận là gì?
J. Doe

0

chỉ để làm rõ, cho những người thắc mắc tại sao rm và del.

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

bạn có thể thêm -fđể buộc các hoạt động hoạt động.


0

Tôi phải đối mặt với cùng một vấn đề. Tôi đã phải làm nhiều hơn để giải quyết điều này. Đầu tiên tôi xóa index.locksau đó tôi nhân bản mã mới từ vị trí kho git hiện có. Tôi đã thay đổi mã của tôi ở vị trí tách biệt. Tôi đã sao chép .gitthư mục và .gitignoretệp và dán vào thư mục mã nơi tôi đã thực hiện thay đổi mã. Sau đó tôi cố gắng cam kết và thúc đẩy, nó hoạt động trơn tru. Có thể sự thúc đẩy này sẽ hữu ích nếu vấn đề của bạn không bằng các giải pháp nêu trên.


0

Có vấn đề tương tự khi sử dụng SourceTree . Nhưng không có bất kỳ tập tin index.lock nào trên máy chủ của tôi cả. Tôi đã tìm thấy tệp pack-refs.lock và sau khi xóa nó, vấn đề đã được giải quyết.


0

Tôi gặp phải vấn đề tương tự, vấn đề là tôi đã cố gắng đẩy mã của mình bằng một xmltệp (được sử dụng làm tập dữ liệu) có kích thước 1,3gb, vì vậy tôi thêm các tệp này vào .gitignorevà sau đó giải quyết vấn đề


0

Nếu bạn kết thúc ở đây dựa trên tiêu đề của câu hỏi ("Một quy trình git khác dường như đang chạy trong kho lưu trữ này"), lưu ý rằng câu trả lời được chấp nhận sẽ không được áp dụng trực tiếp cho bạn nếu thông báo trong tiêu đề của câu hỏi này được gửi trước bởi một tin nhắn khác như cái dưới đây:

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

Trong trường hợp này, bạn nên xóa tệp đó (.lock) thay vì .git / index.lock

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.