РЕДАКТИРОВАТЬ: Предложение wnoise будет работать, если вы не хотите сохранять явную историю, как pushd / popd.Если вы делаете (и не хотите, чтобы обычный checkout
влиял на вашу LRU):
Я не знаю ничего, что будет делать то, что вы хотите, из коробки, но это не сложновзломайте что-нибудь по этим направлениям.Если вы добавите файл с именем git-foo
в PATH, вы получите новую команду git foo
.Итак, git-pushd
может выглядеть так:
#!/bin/bash
SUBDIRECTORY_OK=1
. $(git --exec-path)/git-sh-setup
git symbolic-ref HEAD | sed s_refs/heads/__ >> $GIT_DIR/.pushd
git checkout "$@"
И git-popd
:
#!/bin/bash
SUBDIRECTORY_OK=1
. $(git --exec-path)/git-sh-setup
REF=$(head -n1 $GIT_DIR/.pushd)
[ -n "$REF" ] || die "No refs to pop"
git checkout "$REF" && sed -i -e '1d' $GIT_DIR/.pushd