2012-12-31 30 views
7

Tôi cần một số trợ giúp để giải quyết lỗi khi tôi đẩy nhánh từ repo cục bộ của tôi vào ổ USB. Tôi tin rằng vấn đề là do chuyển đổi qua lại giữa các ổ đĩa khác nhau. Đặc biệt, tôi mất một và bắt đầu sử dụng một thay thế. Sau đó, khi tôi tìm thấy bản gốc tôi đã chuyển về nó. Bây giờ có vẻ như một số refs/đầu của tôi là sai lầm. Ví dụ: tôi nhận được kết quả sau khi tôi cố gắng đẩy chi nhánh:Lỗi "không thể khóa"

$ git push origin android-lite 
Counting objects: 111, done. 
Compressing objects: 100% (98/98), done. 
Writing objects: 100% (109/109), 29.63 KiB, done. 
Total 109 (delta 40), reused 0 (delta 0) 
error: unable to resolve reference refs/heads/android-lite: No such file or directory 
remote: error: failed to lock refs/heads/android-lite 
To /media/2AC0-E4E2/devel/src/java/bbct/ 
! [remote rejected] android-lite -> android-lite (failed to lock) 
error: failed to push some refs to '/media/2AC0-E4E2/devel/src/java/bbct/' 
$ 

Nếu tôi hiểu chính xác, điều này cho biết rằng đầu/android/lite không tồn tại ở gốc. Tuy nhiên, tôi đang bối rối tại sao git không tạo ra một nhánh mới. Có gì trong repo địa phương của tôi chỉ ra rằng nhánh android-lite đã tồn tại trong nguồn gốc?

+4

Bạn có thể xóa repo bằng 'git gc' và' git remote prune'. – madhead

Trả lời

2

Nếu gỡ lỗi các repo từ xa là quá phức tạp (như trong this question, với git gc, git prune, git fsck ...)), bạn vẫn có thể:

  • git bundle repo hiện tại của bạn, mà sẽ cung cấp cho bạn chỉ một tập tin,
  • chép rằng một tập tin trên ổ đĩa từ xa
  • git clone từ đó bó tập tin
  • thiết lập địa chỉ từ xa hiện tại của bạn với con đường mới

Điều này hơi giống như "How to synchronize two git repositories" và sử dụng gói cho tác vụ này là đảm bảo bạn không có bất kỳ bản sao lỗi tệp nào.

+0

Cảm ơn các đề xuất. Để nhấn mạnh một chi tiết trong câu hỏi của tôi: repo từ xa nằm trên ổ USB được cắm vào máy tính của tôi. Tôi có thể dễ dàng 'cd' trực tiếp đến repo từ xa và thao tác nó từ đó. Vì vậy, nếu có một giải pháp đơn giản thao tác trực tiếp từ xa, tôi là tất cả cho điều đó. –

+0

@ Code-Guru Tôi đã liên kết với câu hỏi giải thích lệnh bạn có thể thử gỡ lỗi. Về đề nghị của tôi, tôi vẫn sẽ sử dụng một gói để khởi tạo một repo sạch. Hoặc bạn có thể sao chép repo cục bộ của bạn trực tiếp trên ổ USB. – VonC