Cập nhật tháng 5 năm 2015
Kể từ git 2.4.1 , bạn có thể làm
git config --global push.followTags true
Nếu được đặt thành true, bật tùy chọn --follow-tags theo mặc định.
Bạn có thể ghi đè cấu hình này tại thời điểm đẩy bằng cách chỉ định --no-follow-tags.
Như đã lưu ý trong chủ đề này bởi Matt Rogers trả lời Wes Hurd :
--follow-tags
chỉ đẩy các thẻ chú thích .
git tag -a -m "I'm an annotation" <tagname>
Điều đó sẽ được đẩy (trái ngược với git tag <tagname>
, một thẻ nhẹ, sẽ không bị đẩy, như tôi đã đề cập ở đây )
Cập nhật tháng 4 năm 2013
Kể từ git 1.8.3 (ngày 22 tháng 4 năm 2013) , bạn không còn phải thực hiện 2 lệnh để đẩy các nhánh và sau đó để đẩy các thẻ :
--follow-tags
Tùy chọn " " mới nói " git push
" để đẩy các thẻ chú thích có liên quan khi đẩy các nhánh ra .
Bây giờ bạn có thể thử, khi đẩy các cam kết mới:
git push --follow-tags
Tuy nhiên, điều đó sẽ không đẩy tất cả các thẻ cục bộ, chỉ một thẻ được tham chiếu bởi các cam kết được đẩy bằng git push
.
Git 2.4.1+ (quý 2 năm 2015) sẽ giới thiệu tùy chọn push.followTags
: xem " Cách tạo ra những cuốn git push
sách có thể bao gồm các thẻ trong một nhánh? ".
Câu trả lời gốc, tháng 9 năm 2010
Tùy chọn hạt nhân sẽ là git push --mirror
, sẽ đẩy tất cả các ref theo refs/
.
Bạn cũng có thể đẩy chỉ một thẻ với cam kết chi nhánh hiện tại của mình:
git push origin : v1.0.0
Bạn có thể kết hợp --tags
tùy chọn với một refspec như:
git push origin --tags :
(vì --tags
có nghĩa là: Tất cả các ref dưới refs/tags
được đẩy, ngoài các refspec được liệt kê rõ ràng trên dòng lệnh )
Bạn cũng có mục này " Đẩy các nhánh và thẻ bằng một lệnh gọi " git đẩy "
Một mẹo hữu ích vừa được Zoltán Füzesi đăng lên danh sách gửi thư Git :
Tôi sử dụng .git/config
để giải quyết điều này:
[remote "origin"]
url = ...
fetch = +refs/heads/*:refs/remotes/origin/*
push = +refs/heads/*
push = +refs/tags/*
Với những dòng được thêm vào git push origin
sẽ tải lên tất cả các chi nhánh và thẻ của bạn. Nếu bạn chỉ muốn tải lên một số trong số họ, bạn có thể liệt kê chúng.
Chưa tự mình thử, nhưng có vẻ như nó có thể hữu ích cho đến khi một cách khác để đẩy các nhánh và thẻ cùng lúc được thêm vào git đẩy.
Mặt khác, tôi không ngại gõ:
$ git push && git push --tags
Coi chừng , như nhận xét của Aseem Kishore
push = +refs/heads/*
sẽ đẩy tất cả các chi nhánh của bạn .
Điều này bit tôi chỉ bây giờ, vì vậy FYI.
René Scheibe thêm nhận xét thú vị này :
Các --follow-tags
tham số được gây hiểu lầm chỉ khi thẻ dưới .git/refs/tags
được xem xét.
Nếugit gc
được chạy, các thẻ được chuyển từ .git/refs/tags
sang .git/packed-refs
. Sau đó git push --follow-tags ...
không hoạt động như mong đợi nữa.
git push && git push --tags
gì?