2013-09-06 30 views
13

Làm cách nào để có tên nhánh hoặc thẻ hiện tại cho bản sao làm việc của tôi? Tôi đã thấy các tài liệu tham khảo cho biết rev-parse --abbrev-ref HEAD sẽ cung cấp tên chi nhánh, nhưng điều này không có tác dụng nếu thanh toán là thẻ, trong trường hợp đó nó chỉ trả về 'HEAD'. Tôi cần bằng cách nào đó lấy tên của các bản sửa đổi này.Nhận tên chi nhánh/thẻ git hiện tại

Để được rõ ràng, tôi muốn một trong hai tên có thể:

  1. Nếu thanh toán hiện nay là HEAD của một chi nhánh, tôi muốn tên chi nhánh
  2. Nếu nó là một TRỤ tách ra, tôi muốn tên thẻ (trên giả định có một thẻ)
+0

bản sao có thể có của [Nhận thẻ git của bản xem lại đã kiểm tra?] (Http://stackoverflow.com/questions/15703253/get-git-tag-of-checked-out-revision) –

+0

@FelixKling, vấn đề là thực sự về việc nhận được một kết quả thống nhất. Nếu bạn tình cờ kiểm tra chi nhánh có thẻ mà phương thức khác chỉ cung cấp thẻ. Vì vậy, câu hỏi bao gồm làm thế nào để xác định nếu thực sự nó là một bản sửa đổi HEAD/thẻ tách rời. –

+1

thì sao? http://stackoverflow.com/questions/1404796/how-to-get-the-latest-tag-name-in-current-branch-in-git – smcg

Trả lời

38

tôi nghĩ rằng bạn muốn điều này:

git symbolic-ref -q --short HEAD || git describe --tags --exact-match 

Điều đó sẽ xuất ra giá trị của HEAD, nếu nó không bị tách rời hoặc phát ra tên thẻ, nếu đó là một kết hợp chính xác. Nó sẽ hiển thị cho bạn một lỗi khác.

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