merge(third_party/git): Merge squashed git subtree at v2.23.0
Merge commit '1b593e1ea4' as 'third_party/git'
This commit is contained in:
commit
7ef0d62730
3629 changed files with 1139935 additions and 0 deletions
185
third_party/git/Documentation/git-restore.txt
vendored
Normal file
185
third_party/git/Documentation/git-restore.txt
vendored
Normal file
|
|
@ -0,0 +1,185 @@
|
|||
git-restore(1)
|
||||
==============
|
||||
|
||||
NAME
|
||||
----
|
||||
git-restore - Restore working tree files
|
||||
|
||||
SYNOPSIS
|
||||
--------
|
||||
[verse]
|
||||
'git restore' [<options>] [--source=<tree>] [--staged] [--worktree] <pathspec>...
|
||||
'git restore' (-p|--patch) [<options>] [--source=<tree>] [--staged] [--worktree] [<pathspec>...]
|
||||
|
||||
DESCRIPTION
|
||||
-----------
|
||||
Restore specified paths in the working tree with some contents from a
|
||||
restore source. If a path is tracked but does not exist in the restore
|
||||
source, it will be removed to match the source.
|
||||
|
||||
The command can also be used to restore the content in the index with
|
||||
`--staged`, or restore both the working tree and the index with
|
||||
`--staged --worktree`.
|
||||
|
||||
By default, the restore sources for working tree and the index are the
|
||||
index and `HEAD` respectively. `--source` could be used to specify a
|
||||
commit as the restore source.
|
||||
|
||||
See "Reset, restore and revert" in linkgit:git[1] for the differences
|
||||
between the three commands.
|
||||
|
||||
THIS COMMAND IS EXPERIMENTAL. THE BEHAVIOR MAY CHANGE.
|
||||
|
||||
OPTIONS
|
||||
-------
|
||||
-s <tree>::
|
||||
--source=<tree>::
|
||||
Restore the working tree files with the content from the given
|
||||
tree. It is common to specify the source tree by naming a
|
||||
commit, branch or tag associated with it.
|
||||
+
|
||||
If not specified, the default restore source for the working tree is
|
||||
the index, and the default restore source for the index is
|
||||
`HEAD`. When both `--staged` and `--worktree` are specified,
|
||||
`--source` must also be specified.
|
||||
|
||||
-p::
|
||||
--patch::
|
||||
Interactively select hunks in the difference between the
|
||||
restore source and the restore location. See the ``Interactive
|
||||
Mode'' section of linkgit:git-add[1] to learn how to operate
|
||||
the `--patch` mode.
|
||||
+
|
||||
Note that `--patch` can accept no pathspec and will prompt to restore
|
||||
all modified paths.
|
||||
|
||||
-W::
|
||||
--worktree::
|
||||
-S::
|
||||
--staged::
|
||||
Specify the restore location. If neither option is specified,
|
||||
by default the working tree is restored. Specifying `--staged`
|
||||
will only restore the index. Specifying both restores both.
|
||||
|
||||
-q::
|
||||
--quiet::
|
||||
Quiet, suppress feedback messages. Implies `--no-progress`.
|
||||
|
||||
--progress::
|
||||
--no-progress::
|
||||
Progress status is reported on the standard error stream
|
||||
by default when it is attached to a terminal, unless `--quiet`
|
||||
is specified. This flag enables progress reporting even if not
|
||||
attached to a terminal, regardless of `--quiet`.
|
||||
|
||||
--ours::
|
||||
--theirs::
|
||||
When restoring files in the working tree from the index, use
|
||||
stage #2 ('ours') or #3 ('theirs') for unmerged paths.
|
||||
+
|
||||
Note that during `git rebase` and `git pull --rebase`, 'ours' and
|
||||
'theirs' may appear swapped. See the explanation of the same options
|
||||
in linkgit:git-checkout[1] for details.
|
||||
|
||||
-m::
|
||||
--merge::
|
||||
When restoring files on the working tree from the index,
|
||||
recreate the conflicted merge in the unmerged paths.
|
||||
|
||||
--conflict=<style>::
|
||||
The same as `--merge` option above, but changes the way the
|
||||
conflicting hunks are presented, overriding the
|
||||
`merge.conflictStyle` configuration variable. Possible values
|
||||
are "merge" (default) and "diff3" (in addition to what is
|
||||
shown by "merge" style, shows the original contents).
|
||||
|
||||
--ignore-unmerged::
|
||||
When restoring files on the working tree from the index, do
|
||||
not abort the operation if there are unmerged entries and
|
||||
neither `--ours`, `--theirs`, `--merge` or `--conflict` is
|
||||
specified. Unmerged paths on the working tree are left alone.
|
||||
|
||||
--ignore-skip-worktree-bits::
|
||||
In sparse checkout mode, by default is to only update entries
|
||||
matched by `<pathspec>` and sparse patterns in
|
||||
$GIT_DIR/info/sparse-checkout. This option ignores the sparse
|
||||
patterns and unconditionally restores any files in
|
||||
`<pathspec>`.
|
||||
|
||||
--overlay::
|
||||
--no-overlay::
|
||||
In overlay mode, the command never removes files when
|
||||
restoring. In no-overlay mode, tracked files that do not
|
||||
appear in the `--source` tree are removed, to make them match
|
||||
`<tree>` exactly. The default is no-overlay mode.
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
The following sequence switches to the `master` branch, reverts the
|
||||
`Makefile` to two revisions back, deletes hello.c by mistake, and gets
|
||||
it back from the index.
|
||||
|
||||
------------
|
||||
$ git switch master
|
||||
$ git restore --source master~2 Makefile <1>
|
||||
$ rm -f hello.c
|
||||
$ git restore hello.c <2>
|
||||
------------
|
||||
|
||||
<1> take a file out of another commit
|
||||
<2> restore hello.c from the index
|
||||
|
||||
If you want to restore _all_ C source files to match the version in
|
||||
the index, you can say
|
||||
|
||||
------------
|
||||
$ git restore '*.c'
|
||||
------------
|
||||
|
||||
Note the quotes around `*.c`. The file `hello.c` will also be
|
||||
restored, even though it is no longer in the working tree, because the
|
||||
file globbing is used to match entries in the index (not in the
|
||||
working tree by the shell).
|
||||
|
||||
To restore all files in the current directory
|
||||
|
||||
------------
|
||||
$ git restore .
|
||||
------------
|
||||
|
||||
or to restore all working tree files with 'top' pathspec magic (see
|
||||
linkgit:gitglossary[7])
|
||||
|
||||
------------
|
||||
$ git restore :/
|
||||
------------
|
||||
|
||||
To restore a file in the index to match the version in `HEAD` (this is
|
||||
the same as using linkgit:git-reset[1])
|
||||
|
||||
------------
|
||||
$ git restore --staged hello.c
|
||||
------------
|
||||
|
||||
or you can restore both the index and the working tree (this the same
|
||||
as using linkgit:git-checkout[1])
|
||||
|
||||
------------
|
||||
$ git restore --source=HEAD --staged --worktree hello.c
|
||||
------------
|
||||
|
||||
or the short form which is more practical but less readable:
|
||||
|
||||
------------
|
||||
$ git restore -s@ -SW hello.c
|
||||
------------
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:git-checkout[1],
|
||||
linkgit:git-reset[1]
|
||||
|
||||
GIT
|
||||
---
|
||||
Part of the linkgit:git[1] suite
|
||||
Loading…
Add table
Add a link
Reference in a new issue