Allow passing arguments to git rebase

If non-option arguments are passed to `git forgit rebase`, pass them
through directly to `git rebase`, without launching the interactive
selector, just like we do for other forgit commands.
This commit is contained in:
carlfriedrich 2025-02-15 14:52:49 +01:00
parent 934fe65860
commit c693566dfc

View file

@ -724,6 +724,7 @@ _forgit_cherry_pick_from_branch() {
_forgit_rebase() {
_forgit_inside_work_tree || return 1
_forgit_contains_non_flags "$@" && { git rebase "$@"; return $?; }
local opts graph target_commit prev_commit
graph=()
[[ $_forgit_log_graph_enable == true ]] && graph=(--graph)
@ -737,13 +738,13 @@ _forgit_rebase() {
$FORGIT_REBASE_FZF_OPTS
"
target_commit=$(
git log "${graph[@]}" --color=always --format="$_forgit_log_format" "$@" |
git log "${graph[@]}" --color=always --format="$_forgit_log_format" |
_forgit_emojify |
FZF_DEFAULT_OPTS="$opts" fzf |
_forgit_extract_sha)
if [[ -n "$target_commit" ]]; then
prev_commit=$(_forgit_previous_commit "$target_commit")
git rebase -i "${_forgit_rebase_git_opts[@]}" "$prev_commit"
git rebase -i "${_forgit_rebase_git_opts[@]}" "$@" "$prev_commit"
fi
}