Những ký tự nào là bất hợp pháp trong một tên chi nhánh?


Câu trả lời:


299

Quy tắc đặt tên cho tên gọi:

Git áp đặt các quy tắc sau về cách tham chiếu được đặt tên:

  1. Chúng có thể bao gồm dấu gạch chéo /để phân nhóm (thư mục), nhưng không thành phần nào được phân tách bằng dấu gạch chéo có thể bắt đầu bằng dấu chấm .hoặc kết thúc bằng chuỗi .lock.

  2. Chúng phải chứa ít nhất một /. Điều này thực thi sự hiện diện của một thể loại như heads/, tags/vv nhưng tên thực tế không bị hạn chế. Nếu --allow-oneleveltùy chọn được sử dụng, quy tắc này được miễn.

  3. Họ không thể có hai dấu chấm liên tiếp ở ..bất cứ đâu.

  4. Chúng không thể có các ký tự điều khiển ASCII (tức là các byte có giá trị thấp hơn \040, hoặc \177 DEL), dấu cách ~, dấu ngã , dấu mũ ^hoặc dấu hai chấm ở :bất cứ đâu.

  5. Họ không thể có dấu chấm hỏi ?, dấu hoa thị *hoặc dấu ngoặc mở ở [bất cứ đâu. Xem --refspec-patterntùy chọn bên dưới để biết ngoại lệ cho quy tắc này.

  6. Chúng không thể bắt đầu hoặc kết thúc bằng dấu gạch chéo /hoặc chứa nhiều dấu gạch chéo liên tiếp (xem --normalizetùy chọn bên dưới để biết ngoại lệ cho quy tắc này)

  7. Họ không thể kết thúc bằng một dấu chấm ..

  8. Chúng không thể chứa một chuỗi @{.

  9. Họ không thể là nhân vật duy nhất @.

  10. Chúng không thể chứa a \.

Trên hết, quy tắc bổ sung cho tên chi nhánh:

  1. Họ không thể bắt đầu với một dấu gạch ngang -

Nhờ Jakub Narębski , các trang người đàn ông cho git check-ref-formatcó thêm chi tiết.


9
Đáng nói là '>' được cho phép, nhưng để chuyển sang nhánh đó trong bash, nó đòi hỏi phải thoát với '\' trước đó
igniteflow

3
Tôi bối rối về quy tắc số 2 trong trang người đàn ông mà bạn liên kết. Nó nói "2. Chúng phải chứa ít nhất một /." Vui lòng giải thích? Không có chi nhánh của tôi có một /trong tên.
chharvey

7
@chharvey: một chi nhánh trên mạng mà không /có tiền heads/gửi cho nó. Trên thực tế: không có a /, vẫn chưa rõ nếu đó là chi nhánh hoặc thẻ hoặc thứ gì khác ...
Robert Siemer

1
@DMTintner: Dấu phẩy được cho phép.
Robert Siemer

3
đây là một biểu thức chính quy cho cái này / ^ [/. /. [\\] / g điều này sẽ tìm thấy các ký tự không hợp lệ để bạn có thể thay thế chúng bằng '-' hoặc bất kỳ ký tự nào bạn muốn
Tony Brix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.