Đừng Viết Shell Script Để Sắp Xếp Git Branches — Git Đã Làm Được Việc Đó
Một lệnh git config đơn giản thay thế hàng năm trời viết shell script để sắp xếp branches theo ngày commit cuối cùng.
Nếu bạn xoay xở với nhiều git branches, có lẽ bạn đã từng viết một script để liệt kê chúng theo commit gần nhất. Tác giả của TIL này đã làm vậy, và chạy nó hàng ngày trong nhiều năm. Script lặp qua git branch, trích xuất tên từng branch, chạy git log để lấy ngày commit, rồi sắp xếp kết quả. Nó hoạt động, nhưng chậm và dễ vỡ.
Git hiện đại có giải pháp tích hợp: git branch --sort committerdate. Bạn cũng có thể đặt nó toàn cục với git config branch.sort committerdate, để mọi lệnh git branch mặc định sắp xếp theo ngày commit cuối cùng.
Đây không chỉ là tiện lợi — nó nhắc nhở rằng plumbing của git phong phú hơn chúng ta thường dùng. Tùy chọn --sort chấp nhận bất kỳ khóa nào từ git-for-each-ref, nơi hiển thị các trường như authordate, creatordate, contents:size, và cả upstream và push refs. Điều đó mở ra khả năng sắp xếp branches theo kích thước message, theo mối quan hệ upstream, hoặc theo ngày tạo — mà không cần scripting.
Đánh đổi: committerdate sắp xếp theo commit cuối cùng trên branch, không phải lần cuối branch được chạm tới (ví dụ, bởi merge hoặc rebase). Nếu bạn muốn cái sau, bạn cần creatordate hoặc một script tùy chỉnh. Nhưng với hầu hết quy trình làm việc, committerdate chính xác là thứ bạn muốn.
Đây là một mẹo nhỏ, nhưng là thứ tiết kiệm thời gian mỗi ngày. Và nó là cái cớ tốt để đọc manpage git-for-each-ref — có nhiều thứ hơn bạn nghĩ.
Hóa ra với git hiện đại, điều đó hoàn toàn không cần thiết. Chỉ cần cấu hình git branch để sắp xếp theo ngày commit cuối.
Thảo luận
0 bình luận
Hãy là người đầu tiên thảo luận.