restore: default to --source=HEAD when only --staged is specified
"git restore --staged" without --source does not make much sense since by default we restore from the index. Instead of copying the index to itself, set the default source to HEAD in this case, yielding behavior that matches "git reset -- <paths>". Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e3ddd3b5e5
commit
3a733ce523
@ -1524,6 +1524,12 @@ static int checkout_main(int argc, const char **argv, const char *prefix,
|
||||
}
|
||||
if (opts->checkout_index < 0 || opts->checkout_worktree < 0)
|
||||
BUG("these flags should be non-negative by now");
|
||||
/*
|
||||
* convenient shortcut: "git restore --staged" equals
|
||||
* "git restore --staged --source HEAD"
|
||||
*/
|
||||
if (!opts->from_treeish && opts->checkout_index && !opts->checkout_worktree)
|
||||
opts->from_treeish = "HEAD";
|
||||
|
||||
/*
|
||||
* From here on, new_branch will contain the branch to be checked out,
|
||||
|
Loading…
Reference in New Issue
Block a user