2010-10-13 10 views
51

Tôi muốn đổi tên thư mục từ "Frameworks" thành "frameworks", nhưng git sẽ không cho phép tôi thêm tên viết thường mới. Tôi đoán nó đối xử với trường hợp tên tập tin không nhạy cảm, phải không?Git: Đổi tên tệp

Một git add frameworks/ -f không giúp

+0

Hệ điều hành nào? –

+0

Tôi chạy MacOS 10.6 –

Trả lời

97

Bạn có thể thử:


Nhưng vấn đề trường hợp (trên Windows chẳng hạn) được mô tả trong msysgit issue 228 (một lần nữa: điều này nên now -- June 2014 -- work with git 2.0.1)

luôn là một lựa chọn để thiết lập ignorecase false trong tập tin cấu hình sẽ buộc Unix như Git ngữ nghĩa trên đầu trang của NTFS.
Git hỗ trợ hành vi này nhưng nó không phải là mặc định - từ NTFS điểm a.txtA.txt là những điều tương tự - vì vậy Git cố gắng giữ gìn mà như hầu hết người dùng mong chờ

Để giải quyết tốt hơn, bạn có thể

git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt 

, cũng thay đổi trường hợp tệp được lưu trữ trên đĩa.

bài viết trên blog này illustrates the same issue on MacOs trong một rebase:

Giá trị mặc định trên Mac OS X hệ thống tập tin là họ là case-insensitive. FFFFFF.gif cũng giống như ffffff.gif.

Nếu bạn xóa tệp được đề cập, chỉ từ hệ thống tệp, không phải từ chỉ mục Git, hãy nhớ bạn có thể hợp nhất chi nhánh được đề cập và khôi phục tệp như thể không có gì xảy ra.

Các bước thực hiện khá đơn giản:

$ rm file/in/question.gif 
$ git merge trunk 

Nhưng dù sao, remember what git mv stands for:

mv oldname newname 
git add newname 
git rm oldname 

, vì vậy nếu newnameoldname cuộc đụng độ, bạn cần phải làm cho họ khác nhau (ngay cả khi nó chỉ trong một khoảng thời gian ngắn), do đó git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt

+0

Tôi đã thử 'git mv' nhưng nó đã cho tôi' chết người: đổi tên 'Khung' không thành công: Đối số không hợp lệ ' –

+0

@Erik: dòng lệnh chính xác bạn đã thử là gì? – VonC

+1

Ok 2 bước 'git mv' đã hoạt động! –

1

Tôi đã gặp sự cố tương tự và không thể lấy tên thư mục mới (trường hợp khác) để thay đổi trên repo từ xa. Tôi thấy rằng giải pháp đơn giản nhất là chỉ di chuyển tệp ra khỏi kho và cam kết. Kích hoạt hành động xóa. Sau đó thêm lại và khi tôi thêm vào, nó đi kèm với trường hợp thích hợp.

2

Nếu bạn tình cờ lưu trữ trên Github, bạn có thể sử dụng chức năng đổi tên trên trang web của họ. Đã phải thay đổi vỏ cho 5 tập tin và thấy nó hoạt động rất tốt.