2012-01-09 15 views
148

thử lệnh sau:Làm thế nào để git commit một tập tin/thư mục

git commit path/to/my/file.ext -m 'my notes' 

Nhận lỗi trong git phiên bản 1.5.2.1:

error: pathspec '-m' did not match any file(s) known to git. 
error: pathspec 'MY MESSAGE' did not match any file(s) known to git. 

Có một cú pháp mới cho tệp singe hoặc cam kết thư mục?

ĐÁP: Arguments được kỳ vọng theo thứ tự này ...

git commit -m 'my notes' path/to/my/file.ext

... tuy nhiên nó không phải là thậm chí nghiêm ngặt nữa :)

+1

Bạn có chắc bạn có phiên bản của bạn có đúng không? Đang cập nhật _to_ 1.5.2.1? 1.5.2.1 đã hơn 4 tuổi. –

+0

Có điều gì cấm bạn nâng cấp git không? –

+0

BTW: Đây là một máy ảo quay lên từ một công thức cũ. Git địa phương đã được cập nhật, đã không nhận ra phiên bản này là cổ đại. Đã thay đổi nghiêm ngặt. – doublejosh

Trả lời

260

lập luận của bạn là theo thứ tự sai. Hãy thử git commit -m 'my notes' path/to/my/file.ext hoặc nếu bạn muốn rõ ràng hơn, git commit -m 'my notes' -- path/to/my/file.ext.

Ngẫu nhiên, git v1.5.2.1 là 4.5 tuổi. Bạn có thể muốn cập nhật lên phiên bản mới hơn (1.7.8.3 là bản phát hành hiện tại).

+2

Bạn thực hiện một quan sát tốt. Tuy nhiên, thú vị là Git 1.7.5.1 trên Windows hoàn toàn chấp nhận 'git commit path_to_file -m 'message'' –

+0

@SriSankaran: Có vẻ như họ đã dạy nó để nhận ra các đối số ngoài trật tự rồi. Nhưng theo tài liệu, thứ tự đúng là đặt danh sách tập tin cuối cùng, và có thể là một ý tưởng tốt để gắn vào phiên bản tài liệu của mọi thứ. –

+0

Cảm ơn. Thứ tự của các thông báo này đã thay đổi ... hoặc ít nhất là độ nghiêm ngặt của trật tự đã thay đổi;) – doublejosh

71

Hãy thử:

git commit -m 'my notes' path/to/my/file.ext 
11

Nếu bạn đang ở trong thư mục chứa các tập tin

git commit -m 'my notes' ./name_of_file.ext 
+1

nếu tôi đã có trong tệp, tôi có cần "./" hàng đầu (dấu chấm tiến-dấu gạch chéo) không? tôi có thể sử dụng 'git commit -m" ghi chú của tôi "name_of_file.txt' không? – Chris22

1

Đối với git 1.9.5 trên Windows 7: "Ghi chú của tôi" (dấu ngoặc kép) điều chỉnh vấn đề này . Trong trường hợp của tôi đặt (các) tệp trước hoặc sau thông báo -m '. không có sự khác biệt; sử dụng dấu nháy đơn là vấn đề.

0

Sử dụng tùy chọn -o.

git commit -o path/to/myfile -m "the message" 

-o, thảo mà chỉ cam kết chỉ định file

+0

Tùy chọn đó không cần thiết. Nếu bạn bao gồm một trang tệp trong lệnh cam kết của bạn, nó sẽ chỉ cam kết các tệp đó. – doublejosh