Một chi nhánh git của Stale là gì?


133

Chi nhánh git "Stale" là một thuật ngữ tôi đã nghe nhiều. Tôi biết nó có liên quan đến các nhánh được coi là ít hữu ích hoặc vô dụng, nhưng không thể tìm thấy một định nghĩa chính xác. Một nhánh git "cũ" là gì?

Câu trả lời:


96

Tham chiếu cũ nhất về " stale " được tìm thấy trong commit e194cd1 (tháng 1 năm 2007, Git 1.5.0), đã phát hiện " các nhánh theo dõi cũ trong remote ": khi theo dõi một nhánh bị hệ thống từ xa loại bỏ.
Do đó git remote prune.

Đó là định nghĩa chính cho nhánh cũ: nhánh theo dõi từ xa ( tham chiếu cục bộ của nhánh repo từ xa) không còn theo dõi bất cứ điều gì (vì nhánh thực tế trên repo từ xa đã biến mất).

git remote show có thể liệt kê những cái đó


Ngẫu nhiên, bạn có hai định nghĩa khác về "cũ" trong hệ thống Git:

  • Một tham chiếu đến "cũ" liên quan git reflog --stale-fixtrong phạm 1389d9d (Git 1.5.0), để theo dõi " phá vỡ cam kết ": một cam kết rằng không thể truy cập từ bất kỳ refs và có một đối tượng thiếu một trong những cam kết, các đối tượng cây, hoặc blob có thể truy cập từ nó mà không thể truy cập từ bất kỳ giới thiệu nào.
    Điều đó giúp khắc phục tình trạng sau khi chạy không nhận biết git prunetừ một git cũ hơn với sự hiện diện của reflog .

  • Cam kết 740fdd2 (Tháng 3 năm 2008, Git 1.5.5) cũng giới thiệu "cũ" cho các ref mang tính biểu tượng , khi các ref họ chỉ ra không còn tồn tại.


Như được đề cập bởi @SteelToe: Định nghĩa của một nhánh cũ, theo tài liệu GitHub , là một nhánh chưa có bất kỳ cam kết nào trong 3 tháng trước.
Điều này thường chỉ ra một nhánh cũ / không rõ ràng / không hiện tại.


Tôi đã thấy điều này khi tôi đang chuyển sang một nguồn gốc từ xa hoàn toàn mới, bởi vì nó không có bất kỳ chi nhánh nào của tôi trên đó (rõ ràng).
Noumenon

"một nhánh theo dõi từ xa" <- khi bạn nói điều này, nó khiến tôi nghĩ rằng bạn đang nói về một nhánh tồn tại trong repo từ xa, nhưng ý bạn là một nhánh từ xa mà bạn đã theo dõi cục bộ trước đó, nhưng "Chi nhánh thực tế trên repo từ xa đã biến mất" phải không?
Mật ong

@Honey (trễ vài tháng) Vâng, đó là ý tưởng. Tôi đã cập nhật câu trả lời để thêm một liên kết minh họa chi nhánh theo dõi từ xa là gì.
VonC


17

Đó là bởi vì không có "định nghĩa chính xác". "Chi nhánh cũ", "dữ liệu cũ", "tùy chọn cấu hình cũ" - không ai trong số này có định nghĩa chính xác , nhưng tất cả đều đề cập đến những thứ được coi là cũ / không rõ ràng / không hiện tại / có thể bị hỏng.

Vì vậy, một "nhánh git cũ" nói chung là một nhánh của kho lưu trữ đã không được chạm vào trong một thời gian dài. Có lẽ nó bị hỏng, có thể không; nó chắc chắn không phải là hiện tại cho ngành phát triển tích cực và không ai đã xem xét nó trong một thời gian.


12
Trên github, các chi nhánh không được cập nhật trong 3 tháng qua được coi là cũ: help.github.com/articles/viewing-branches-in-your-reposeective
Ludovic Ronsin

3

Chi nhánh cũ là một chi nhánh không có hoạt động sau một thời gian. Ở Github, nó đã cũ sau 3 tháng không hoạt động.

Lý do, tại sao các dự án có các nhánh cũ: các tính năng chưa được phát hành, nguyên mẫu, giải pháp thay thế, không đầy đủ, không tương thích.

đọc thêm

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.