Previously the switching branch business of 'git checkout' becomes a
new command 'switch'. This adds the restore command for the checking
out paths path.
Similar to git-switch, a new man page is added to describe what the
command will become. The implementation will be updated shortly to
match the man page.
A couple main differences from 'git checkout <paths>':
- 'restore' by default will only update worktree. This matters more
when --source is specified ('checkout <tree> <paths>' updates both
worktree and index).
- 'restore --staged' can be used to restore the index. This command
overlaps with 'git reset <paths>'.
- both worktree and index could also be restored at the same time
(from a tree) when both --staged and --worktree are specified. This
overlaps with 'git checkout <tree> <paths>'
- default source for restoring worktree and index is the index and
HEAD respectively. A different (tree) source could be specified as
with --source (*).
- when both index and worktree are restored, --source must be
specified since the default source for these two individual targets
are different (**)
- --no-overlay is enabled by default, if an entry is missing in the
source, restoring means deleting the entry
(*) I originally went with --from instead of --source. I still think
--from is a better name. The short option -f however is already
taken by force. And I do think short option is good to have, e.g. to
write -s@ or -s@^ instead of --source=HEAD.
(**) If you sit down and think about it, moving worktree's source from
the index to HEAD makes sense, but nobody is really thinking it
through when they type the commands.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
18 lines
858 B
Plaintext
18 lines
858 B
Plaintext
interactive.singleKey::
|
|
In interactive commands, allow the user to provide one-letter
|
|
input with a single key (i.e., without hitting enter).
|
|
Currently this is used by the `--patch` mode of
|
|
linkgit:git-add[1], linkgit:git-checkout[1],
|
|
linkgit:git-restore[1], linkgit:git-commit[1],
|
|
linkgit:git-reset[1], and linkgit:git-stash[1]. Note that this
|
|
setting is silently ignored if portable keystroke input
|
|
is not available; requires the Perl module Term::ReadKey.
|
|
|
|
interactive.diffFilter::
|
|
When an interactive command (such as `git add --patch`) shows
|
|
a colorized diff, git will pipe the diff through the shell
|
|
command defined by this configuration variable. The command may
|
|
mark up the diff further for human consumption, provided that it
|
|
retains a one-to-one correspondence with the lines in the
|
|
original diff. Defaults to disabled (no filtering).
|