Git: Đẩy một thẻ đến một nhánh từ xa mới trong 1 lệnh


1

Git đẩy chấp nhận một refspec nguồn và đích như là một phần của hoạt động đẩy, nhưng tôi dường như không thể đẩy một thẻ cục bộ như một nhánh từ xa mới trong một lệnh. Tôi biết rằng tôi có thể kiểm tra thẻ và sau đó đẩy nó, nhưng điều này có thể là một lệnh duy nhất.

Những gì tôi đã thử:

git push origin refs/tags/0.0.1:new_branch

Điều gì xảy ra:

Counting objects: 1, done.
Writing objects: 100% (1/1), 156 bytes | 0 bytes/s, done.
Total 1 (delta 0), reused 1 (delta 0)
To '■■■■■■■■■■■■■■■■■■■■■■■■■■■■.com/test.git'
  * [new tag]         0.0.1 -> new_branch

Tôi cũng đã thử các biến thể remotes/origin/masterthay vì chính, nhưng điều này cũng tạo ra một thẻ mới thay vì tạo một nhánh từ xa dựa trên thẻ.

Câu trả lời:


0

Bạn luôn có thể đẩy thẻ trực tiếp, nó sẽ được đẩy tách ra khỏi một nhánh.

git push origin 0.0.1

Chuyện gì sẽ xảy ra:

Counting objects: 1, done.
Delta compression using up to 8 threads.
Compressing objects: 100% 1/1), done.
Writing objects: 100% (1/1), 685 bytes | 0 bytes/s, done.
Total 1 (delta 1), reused 0 (delta 0)
To git@github.con:group-something/test.git
 * [new tag]         0.0.1 -> 0.0.1

Nếu bạn muốn sử dụng cú pháp ref của mình, nó sẽ như sau:

git push origin refs/tags/0.0.1:refs/tags/0.0.1

Kết quả hoàn toàn giống nhau.

Trong cả hai trường hợp, bạn cần lưu ý rằng bạn đang đẩy một cái đầu tách ra. Điều này có nghĩa là bất kỳ ai kéo hoặc tìm nạp sẽ không nhận được đầu được gắn thẻ này. Bạn cần tìm nạp với --tagsparam. Nếu không, chỉ các thẻ trong chi nhánh sẽ được kéo. Vì vậy, chỉ khi bạn làm:

git fetch --tags

Bạn nhận được các đầu "tách ra" được tham chiếu bởi các thẻ của bạn.

remote: Counting objects: 6, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (6/6), done.
From git@github.con:group-something/test
 * [new tag]         0.0.1 -> 0.0.1
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.