Làm thế nào để loại bỏ "sẽ làm tắc nghẽn thẻ hiện có"


110

Tôi đang sử dụng git trong VSCodium và mỗi lần tôi cố gắng kéo git lại bị phàn nàn.

Nhìn vào nhật ký tôi thấy

> git pull --tags origin master
From https://github.com/MY/REPO
 * branch            master     -> FETCH_HEAD
 ! [rejected]        latest     -> latest  (would clobber existing tag)
   9428765..935da94  master     -> origin/master

Thực hiện lệnh với sự --forcetrợ giúp cho đến lần sau.

Tôi không rõ chuyện gì đang xảy ra ở đây. Điều gì đã xảy ra và tôi có thể giải quyết vấn đề này như thế nào?

Ý tôi là: Bên cạnh việc chuyển repo cục bộ của tôi vào thùng rác và sao chép lại.

Câu trả lời:


280

Bạn nên cập nhật các thẻ cục bộ của mình bằng các thẻ từ xa:

git fetch --tags -f

Sau đó kéo lại.


12
Điều này đã làm việc cho tôi. Tôi đã gặp sự cố với VSCode sau đó chạy điều này trong dòng lệnh đã khắc phục sự cố. :)
Juan Luis Faylon

2
Cảm ơn, bạn có thể giải thích thêm về điều này được không? Đây có phải là lệnh một lần không, vấn đề chính xác là gì và cách giải quyết nó ra sao ..
Sagiv bg

5
@ Sagivb.g trên điều khiển từ xa, ai đó xóa một thẻ và tạo một thẻ mới có cùng tên, thì điều này sẽ xảy ra trên địa chỉ của bạn
Tuấn Trần,

Hoặc git pull --tags -fngay lập tức.
Der Hochstapler

37

Vì bạn nói rằng không rõ chuyện gì đang xảy ra, tôi cho rằng bạn không sử dụng thẻ đó cho bất cứ việc gì và bạn chỉ muốn làm việc của riêng mình.

Tắt cài đặt này:

nhập mô tả hình ảnh ở đây

Bây giờ bạn đã sẵn sàng.


Giải thích chi tiết:

Các thẻ chỉ là tham chiếu đến các cam kết cụ thể (giống như tên chi nhánh). Sự khác biệt chính là git(theo như tôi biết) giả định các thẻ sẽ không thay đổi, nơi các nhánh dự kiến ​​sẽ được cập nhật.

Vì vậy, "lỗi" là bạn có trong cục bộ của mình một thẻ gọi là latesttrỏ đến cam kết X - nhưng điều khiển từ xa có một thẻ gọi là latesttrỏ đến cam kết Y. Nếu bạn áp dụng thay đổi từ điều khiển từ xa, bạn sẽ ghi đè thẻ cục bộ của mình.

VSCode sẽ kéo tất cả các thẻ theo mặc định, do đó bạn sẽ gặp lỗi.

Không có gì sai khi có một thẻ "chuyển động" như vậy latest, đó chỉ là điều mà VSCode không tính đến (ý kiến ​​cá nhân).


Ngoài ra, bạn có thể tránh sự cố bằng cách sử dụng dòng lệnh và nhập git pulllệnh theo cách thủ công . Cụ thể, bạn cần bỏ qua --tagsđể bỏ qua bước này của quy trình.

Nếu bạn làm điều này, thẻ của bạn sẽ không được cập nhật - nhưng tôi không nghĩ rằng đó là mối quan tâm ở đây.


Cảm ơn rất nhiều. Tôi đã phải cập nhật VSCodium của mình, nhưng sau đó nó hoạt động. Tôi nghĩ, tôi cũng có thể loại bỏ thẻ cục bộ của mình?
Skeeve 21/09/19

1
xem câu trả lời của tôi dưới đây
Tuấn Trần
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.