Когда я набираю git branch
, я получаю список ветвей, которые сортируются по алфавиту, а не сортируются по времени их создания.
Есть ли способ сделать вывод git branch
отсортированным по дате?
Когда я набираю git branch
, я получаю список ветвей, которые сортируются по алфавиту, а не сортируются по времени их создания.
Есть ли способ сделать вывод git branch
отсортированным по дате?
Изменить
Увы, есть очевидные проблемы с параметрами сортировки, сделанными git-for-each-ref
. Поскольку эта команда явно (явно) направлена на показ refs
и принимает параметр --sort
, я думаю об этом как о вероятной ошибке [1].
Вот лучшие варианты, которые я могу придумать, но результат довольно отчужден от исходного формата (потому что они полагаются на декорирование версий после того, как факт относится к ветвям). Хорошо, может быть, это полезно для вас:
[1], если это были git-rev-list
или git-log
, я думаю, проблема в том, что мы фактически не ходим по дереву ревизий; мы активно пытаемся показать только подсказки деревьев, не прогуливаясь по ним.
Суб >
git log --no-walk --date-order --oneline --decorate \
$(git rev-list --branches --no-walk)
Это даст вам список, похожий на
4934e92 (HEAD, origin/testing, origin/HEAD, testing) reviewed INSTALL file as per #1331
6215be7 (origin/maint, maint) reviewed INSTALL file as per #1331
1e5e121 (origin/emmanuel, emmanuel) buffers: adjust the size in zfsfuse_stat
e96783e (origin/compress, compress) buffers: adjust the size in zfsfuse_stat
f6e2c6c (origin/unstable, unstable) revert the fatal condition again
dd52720 (origin/master-lucid, master-lucid) lucid
3b32fa7 (tag: 0.7.0, origin/master, master) panic revocation of 0.7.0-0 package necessitates an update
6eaa64f (origin/maint-0.6.9, maint-0.6.9) Replace remount by drop_caches (on rollback)
_ Как вы можете видеть, результат может быть немного ошеломляющим в присутствии многих удаленных (отслеживающих) ветвей, которые фактически имеют одинаковые версии. Однако результат упорядочен по дате (нисходящей).
Нет, но вы должны иметь возможность делать
git for-each-ref --sort='-*committerdate' --format="%(refname:short)" refs/heads/
(используйте --sort='-*authordate'
для заказа даты автора)
В моем тестовом репо это дает:
compress
emmanuel
maint
maint-0.6.9
master
master-lucid
testing
unstable
вы можете создать псевдоним git, чтобы сделать это: добавьте следующие строки в .git/config
[alias]
branch2 = git for-each-ref --sort='-*committerdate' --format="%(refname:short)" refs/heads/
С этого момента вы можете просто сказать git branch2
Начиная с git 2.7.0 это будет работать:
git branch --sort=-committerdate
Ответ Stujo мой любимый, но я хотел сделать еще один шаг и сделать сортировку по дате git branch
поведением в git branch
умолчанию. Вот как:
git config --global branch.sort -committerdate
Удалите -
перед committerdate
чтобы отсортировать другим способом.
Теперь git branch
всегда будет отсортирована по дате!