2010-03-27 36 views

Trả lời

39

Các -- tách các đường dẫn khỏi các tùy chọn khác. Từ documentation:

git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>... 

Nếu ký hiệu này không tồn tại hai lệnh sau đây sẽ là mơ hồ:

git checkout <tree-ish> <path1> <path2> 
git checkout <path1> <path2> <path3> 

Với các ký hiệu -- rõ ràng đó là có nghĩa:

git checkout <tree-ish> -- <path1> <path2> 
git checkout -- <path1> <path2> <path3> 

Tài liệu tôi liên kết ở trên bao gồm example khi bạn có thể cần:

$ git checkout hello.c

Nếu bạn có một chi nhánh bất hạnh có tên hello.c, bước này sẽ bị nhầm lẫn như một hướng dẫn để chuyển sang chi nhánh đó. thay vào đó bạn nên viết:

$ git checkout - hello.c

+2

Tất nhiên, nếu bạn có một con đường được gọi là '-f', mà đặt ra câu hỏi khác, như tại sao bạn cần một con đường được gọi là '- f'. :) –

+0

@ John Feminella: Đúng vậy, tôi đã tìm thấy một ví dụ tuyệt vời hơn. –

+0

- Không chỉ tách đường dẫn khỏi các tùy chọn. Bạn cũng cần - tách biệt dấu phân tách đó khỏi một tệp được gọi là - như trong 'git checkout - --'. –