This causes cgit to serve error pages, which is undesirable. This reverts commit5229c9b232, reversing changes made tof2b211131f.
		
			
				
	
	
		
			185 lines
		
	
	
	
		
			5.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			185 lines
		
	
	
	
		
			5.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
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
 |