Основываясь на ответе eftshift0 , я придумал следующие псевдонимы:
# Print the $1-th first-parent of commit $2
# or the earliest existing commit if the beginning of history is reached
parent = !"[ \"${1:-1}\" -eq \"${1:-1}\" ] && c=$(git rev-parse \"${2:-@}\") && git log -n\"$(expr \"${1:-1}\" + 1)\" --first-parent --pretty=\"%H\" --reverse \"$c\" | head -n1 #"
Требуется два необязательных аргумента:
$1
-Сколько родителей, чтобы вернуться.По умолчанию 1
или ближайший родительский элемент $2
- Принятый для выполнения коммит, по умолчанию HEAD
Если запрошен 0-й родительский элемент,Сам коммит (или HEAD) возвращается.
Используется внутри моего rebase --interactive
псевдонима:
rbi = !"git rebase --interactive --autostash --autosquash --root \"$(git rev-parse \"${1:-$(git parent 50)}\")\" #"