2009-10-27 24 views
9

Chúng tôi có một kho lưu trữ với nhiều thẻ. Mỗi thẻ đại diện cho một phiên bản của phần mềm. Chúng tôi đang đẩy kho lưu trữ đến một máy chủ từ xa.Thẻ Git biến mất khi thực hiện thao tác push rồi sao chép?

Khi chúng tôi tạo bản sao mới ra khỏi máy chủ từ xa, các thẻ không còn ở đó nữa. Làm thế nào để bạn đảm bảo các nhà phát triển hoặc khách hàng khác có thể kiểm tra các phiên bản phần mềm cụ thể khỏi máy chủ từ xa?

Trả lời

12

git push --tags hay git push remotetag-name

+0

Nó đánh tôi như là lẻ rằng các thẻ nên được giữ riêng biệt, tôi tự hỏi tại sao! – corydoras

+2

Thực ra, các thẻ không được giữ riêng biệt. Ngữ nghĩa mặc định của 'git push' là để đẩy ref (nhánh và thẻ) trên máy cục bộ của bạn có refs khớp trên remote. Vì bất kỳ thẻ đã cho nào chưa tồn tại trên điều khiển từ xa, nó sẽ không bị đẩy (và vì các thẻ được dự định là không thay đổi, nên sẽ không có ý nghĩa gì khi cập nhật các thẻ dù sao đi nữa). Vì vậy, bạn cần phải đẩy mạnh các thẻ khi bạn muốn chúng xuất hiện trên điều khiển từ xa. –

+2

Có thể cần phải, tôi nghĩ, 'git push tag ', nghĩa là thông số kho lưu trữ phải được chỉ định rõ ràng (vì việc diễn giải phụ thuộc vào vị trí). –

9

giải pháp thay thế cho một given by Brian Campbell sẽ được cấu hình từ xa để đẩy tất cả refs, hoặc đẩy tất cả các chi nhánh và các thẻ:

[remote "repository"] 
     url = [email protected]:user/repo.git 
     push = +refs/heads/*:refs/heads/* 
     push = +refs/tags/*:refs/tags/* 
0

Lưu ý rằng, kể từ khi git 1.8.3 (April 22d, 2013), a:

git push --follow-tags 

sẽ đẩy bất kỳ cam kết mới nào cũng như tất cả thẻ được chú thích được tham chiếu bằng cách đẩy comm nó là.

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