Ở đây mình ví dụ: để hiển thị danh sách các nhánh được tạo cách đây 6 tháng trên remote repository trừ nhánh master và dev, bạn có thể sử dụng lệnh sau:
git ls-remote --heads origin | awk -F 'refs/heads/' '{print $2}' | while read branch; do if [ `git log --format="%at" --reverse origin/$branch | tail -1` -lt `date -v-6m +%s` ] && [ "$branch" != "master" ] && [ "$branch" != "dev" ]; then echo $branch; fi; done
Lệnh này sử dụng git ls-remote để lấy danh sách các nhánh từ remote repository. Sau đó, nó sử dụng awk để tách tên nhánh từ đầu ra của lệnh git ls-remote.
Với mỗi nhánh, nó sử dụng git log --reverse để lấy tất cả các commit trên nhánh đó, sau đó lấy thời gian của commit đầu tiên. Nếu tên nhánh đó khác với master
và dev
, và thời gian tạo của nhánh đó lớn hơn 6 tháng, tên nhánh đó sẽ được hiển thị
Lưu ý rằng lệnh này sẽ hiển thị danh sách các nhánh trên remote repository, do đó bạn cần chắc chắn rằng bạn có quyền truy cập vào remote repository trước khi thực hiện lệnh này.