2010-10-26 22 views
5

alt textThay đổi tên của thư mục trong Rails - Git sẽ không cho phép tôi thêm vào cam kết

Tham chiếu ảnh chụp màn hình ở trên, tôi đã thay đổi tên của thư mục thấp nhất cấp trong cây. Ví dụ, tôi đã thay đổi "Chips" thành "chip". Kỳ quặc, Git từ chối công nhận lệnh sau khi tôi cố gắng để thêm nó vào cam kết:

git add public/images/chips/ 

Cách duy nhất tôi có thể lấy nó để thêm các tập tin vào cam kết là bằng cách thêm một tập tin thực tế trong thư mục con.

Bất kỳ ý tưởng nào về cách xử lý?

+0

Vì vậy, giải pháp cuối cùng của tôi là: git add chip -f/ – keruilin

Trả lời

3

Nói chung khi thay đổi tập tin hoặc thư mục tên, bạn sẽ muốn sử dụng như sau:

git mv oldfile newfile 

này sẽ cho git để thực sự thêm những thay đổi để bạn có thể cam kết cho họ. Vì vậy, hãy thử thay đổi nó trở lại với

mv chips Chips 

và sau đó chạy

git mv Chips chips 
+0

vì vậy đây là thú vị ... nó sẽ không cho phép tôi thay đổi nó từ chip đến chip ... nhưng nó sẽ cho phép tôi thay đổi từ Chips sang chip – keruilin

+0

Tôi nhận thấy điều này một vài ngày trước. Dường như git-mv bỏ qua những thay đổi khác nhau trong trường hợp chỉ. – Jeremy

+0

@keruilin - Bạn đang sử dụng hộp Windows? Điều này dường như không đúng trên máy Linux. –

0

Rollback thay đổi của bạn và chạy git mv Chips chips

0

Làm sao bạn đổi tên thư mục? Tôi luôn di chuyển/đổi tên tệp trong kho lưu trữ của mình bằng cách sử dụng git mv (git help mv). Hãy thử mv nhập các tệp/thư mục quay lại những gì git biết chúng trông như thế nào, sau đó sử dụng phiên bản di chuyển của git để thay thế?

0

Hãy thử git add -A. Điều này sẽ phát hiện các đổi tên/xóa không được thực hiện thông qua git mv/git rm.

+0

Không hoạt động .... – keruilin

1

Đây có lẽ chỉ là vấn đề khi làm việc với hệ điều hành có hệ thống tệp phân biệt chữ hoa chữ thường, như OSX và Windows. Bạn nên thực hiện việc đổi tên trên hệ thống tập tin hệ thống unix/phân biệt chữ hoa chữ thường - nó sẽ hoạt động ở đó với một trong hai cách (git mv hoặc đổi tên đầu tiên, sau đó git add - nó sẽ phát hiện di chuyển).

Sau đó, trở lại hệ thống phân biệt chữ hoa chữ thường của bạn, bạn có thể sẽ nhận được xung đột trong khi kéo. Nó có thể giúp tự đổi tên ở đó và thử kéo một lần nữa - git nên hợp nhất những thay đổi này đúng cách (vì thực sự không có gì nếu cam kết không thay đổi gì khác trong thư mục đó).

Bạn cũng có thể giải quyết vấn đề này bằng một số mẹo nâng cao và đổi tên: Đổi tên thành chips-tmp trước, cam kết, sau đó đổi tên thành chips, sửa đổi cam kết trước đó của bạn. Chỉ sau đó đẩy đến kho lưu trữ ngược dòng của bạn.

Nhìn đây:

1

Lưu ý rằng, từ 15 tháng 3 năm 2013, bạn có thể move or rename a file directly from GitHub.
Điều đó có nghĩa, trong trường hợp của bạn, bạn có thể đổi tên thư mục trên GitHub, sau đó sao chép repo của bạn trong repo cục bộ mới, với tên mới cho các thư mục đã nói.

renaming

Bạn cũng có thể di chuyển các file đến các địa điểm hoàn toàn mới sử dụng chỉ là lĩnh vực tên tập tin.
Để điều hướng xuống thư mục, chỉ cần nhập tên thư mục bạn muốn di chuyển tệp vào theo sau là /.
Thư mục có thể là thư mục đã là một phần của kho lưu trữ của bạn hoặc thậm chí thư mục này còn có thể là một thư mục hoàn toàn mới chưa tồn tại!

moving

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