2013-01-02 63 views
19

Tôi hoàn toàn bị mắc kẹt là tại sao git của tôi đã khóa hoàn toàn tôi. Tôi có một máy tính xách tay mà tôi sử dụng tại nơi làm việc và khi tôi về nhà. Đối với cả hai tài khoản tôi sử dụng git rộng rãi và cả hai đều nằm trong các đường dẫn khác nhau. Hôm nay tôi đi làm và tôi không thể làm gì cả, tất cả những gì tôi thấy là:xóa .git/index.lock ': Quyền bị từ chối

/Applications/MAMP/htdocs/my_site/.git/index.lock': Permission denied 

Đối với tất cả những gì tôi chăm sóc, chi nhánh tôi có thể bị xóa. Tôi đã thử loại bỏ các chi nhánh, kiểm tra bất kỳ chi nhánh khác, loại bỏ các tập tin index.lock (như đề nghị của người dùng khác trên các trang web). Tôi chỉ có cửa sổ đầu cuối mở, không có chương trình nào khác có thể sử dụng git (theo như tôi biết và không có gì đáng chú ý trong cửa sổ hoạt động). Tôi đã khởi động lại máy tính ngay vào tài khoản công việc của mình và vẫn không có may mắn. Làm thế nào tôi có thể tháo khóa này?

+0

Mặt nạ quyền và quyền sở hữu trên '.git' và' .git/index.lock' là gì? – cdhowie

Trả lời

11

Kiểm tra mà người dùng sở hữu các khóa git:

ls -la /Applications/MAMP/htdocs/my_site/.git/index.lock 

Sau đó, bạn có thể sử dụng sudo để xoá bỏ nó.

+0

Wow ....... đã nhận được, nhận xét của bạn khiến tôi trông khác, Cảm ơn bạn :) Trong những ngày lễ x-mas tôi đã nâng cấp MAMP miễn phí lên PRO tại nhà (tài khoản nhà) và khi tôi đi làm sáng nay đăng nhập vào tài khoản công việc của tôi Tôi đã không nhận thấy rằng tất cả mọi thứ dưới my_site đã được thay đổi để tài khoản nhà của tôi làm cho tài khoản công việc của tôi không thể truy cập cho bất kỳ lệnh git. Tôi chown'd nó và bây giờ nó hoạt động. Cảm ơn. – user1760561

6

Sau khi cập nhật xcode, bạn có thể được yêu cầu đồng ý với giấy phép mới.

git init

đồng ý với các giấy phép Xcode/iOS yêu cầu đặc quyền quản trị, xin vui lòng chạy lại như là người chủ qua sudo.

Khi bạn làm điều này

sudo git init

bạn sẽ nhận được một người dùng root .git dir

drwxr-xr-x 10 gốc XXXX 340 25 tháng 9 12:40 .git

Nếu bạn gọi các lệnh git khác tạo tệp, các tệp này cũng được tạo cho người dùng root.

Thay đổi quyền hoặc xóa .git nếu bạn chưa cần.

=> Đừng bao giờ gọi git bằng sudo !!! Nếu bạn được yêu cầu chỉ cần gọi git trên một thư mục rỗng

mkdir foo

cd foo

sudo git init

22

tôi đã có cùng một vấn đề chính xác mong muốn cam kết những thay đổi của tôi đối với git và đã giải quyết theo cách này:

  • Tôi cần thay đổi nhóm thư mục .git của tôi và nội dung của thư mục:

    sudo chown -R:.git

  • cần thiết để thay đổi sự cho phép của thư mục này:

    sudo chmod -R 775 .git

+0

Giải pháp này có tác dụng gây tử vong: Không thể tạo '/Users/Shared/Jenkins/Home/jobs/FMS-UI-Automation/.git/index.lock': Cũng cho phép lỗi bị từ chối. – vikramvi

1

Tôi đã gặp vấn đề tương tự khi cố gắng cập nhật các môđun con của repo của tôi:

$ git submodule update 
fatal: Unable to create '.../.git/modules/deps/luajit/index.lock': 
    Permission denied 
Unable to checkout '04dc64b558025e76a820f89a8e41840bf8269f32' in 
    submodule path 'deps/luajit' 

Có vẻ như vấn đề là các mô-đun con thuộc về một người dùng khác, vì vậy tôi đặt lại quyền sở hữu cho tôi:

cd .git/modules/ 
chown -R dpino.dpino * 

Trong trường hợp áp dụng đoạn mã này, hãy nhớ sử dụng của riêng bạn dùngnhómchown -R user.group *.

Các vấn đề liên quan