Teach rebase an interactive mode
Don't you just hate the fact sometimes, that git-rebase just applies the patches, without any possibility to edit them, or rearrange them? With "--interactive", git-rebase now lets you edit the list of patches, so that you can reorder, edit and delete patches. Such a list will typically look like this: pick deadbee The oneline of this commit pick fa1afe1 The oneline of the next commit ... By replacing the command "pick" with the command "edit", you can amend that patch and/or its commit message, and by replacing it with "squash" you can tell rebase to fold that patch into the patch before that. It is derived from the script sent to the list in <Pine.LNX.4.63.0702252156190.22628@wbgn013.biozentrum.uni-wuerzburg.de> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
0cae23467a
commit
1b1dce4bae
@ -3,7 +3,7 @@
|
||||
# Copyright (c) 2005 Junio C Hamano.
|
||||
#
|
||||
|
||||
USAGE='[-v] [--onto <newbase>] <upstream> [<branch>]'
|
||||
USAGE='[--interactive | -i] [-v] [--onto <newbase>] <upstream> [<branch>]'
|
||||
LONG_USAGE='git-rebase replaces <branch> with a new branch of the
|
||||
same name. When the --onto option is provided the new branch starts
|
||||
out with a HEAD equal to <newbase>, otherwise it is equal to <upstream>
|
||||
@ -120,6 +120,16 @@ finish_rb_merge () {
|
||||
echo "All done."
|
||||
}
|
||||
|
||||
is_interactive () {
|
||||
test -f "$dotest"/interactive ||
|
||||
while case $#,"$1" in 0,|*,-i|*,--interactive) break ;; esac
|
||||
do
|
||||
shift
|
||||
done && test -n "$1"
|
||||
}
|
||||
|
||||
is_interactive "$@" && exec git-rebase--interactive "$@"
|
||||
|
||||
while case "$#" in 0) break ;; esac
|
||||
do
|
||||
case "$1" in
|
||||
|
||||
Reference in New Issue
Block a user