2012-07-20 36 views
5

Trong kho lưu trữ git của tôi, tôi đã thực hiện chuyển đổi utf-8 nhiều tệp, nhưng chỉ bên dưới thư mục .git, do đó thư mục .git không được chạm vào. Trước khi chuyển đổi này, tôi đã tạo ra một nhánh thử nghiệm mới, nhưng bây giờ tôi không thể sử dụng repo của tôi được nữa, tôi không thể chuyển về master. Khi tôi làm:trạng thái git cho tôi lỗi: tệp chỉ mục không hợp lệ chữ ký sha1

git status 

hoặc bất kỳ lệnh git khác mà tôi nhận được:

error: bad index file sha1 signature 
fatal: index file corrupt 
fatal: 'git status --porcelain' failed in submodule core/kimai-mobile 

Tôi tìm kiếm về nó và tìm thấy lệnh:

rm -f .git/index 

và sau này:

git reset 

nhưng điều này đã không ' t giúp đỡ. Tôi không hiểu điều gì là sai. Sau đó, tôi đã xóa "submodule" core/kimai-mobile và đột nhiên tôi có thể sử dụng lại!

Tôi có kho lưu trữ git khác trong thư mục này, trong đó tôi đã phá hủy tệp chỉ mục khác bằng chuyển đổi của mình. Vấn đề của tôi là, tôi nghĩ rằng tệp chỉ mục kho lưu trữ "chính" có nghĩa là.

Bây giờ nó đang làm việc một lần nữa :)


Câu hỏi của tôi là, tại sao git nhìn vào submodule này mặc dù tôi đã có toàn bộ thư mục của submodule này trong ignorelist của tôi?

Đây là tập tin bỏ qua của tôi git "chính":

.gitignore 

... 
# kimai mobile 
kimai-mobile 
... 
+0

Câu hỏi là gì? –

Trả lời

6

submodules là kho git hoàn tất. Vì vậy, chúng có thể chứa thư mục con .git (hoặc ít nhất là một liên kết đến nó).

Vì vậy, nếu bạn sử dụng công cụ của mình trên tất cả các tệp bên cạnh .git trong thư mục gốc của kho gốc, bạn vẫn có thể làm hỏng một số tệp .git bên trong trong các mô-đun con.

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