blob: 0d1bd72371007010e0ce95a909dbd49c17809056 [file] [log] [blame]
'\" t
.\" Title: git-mv
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 02/06/2019
.\" Manual: Git Manual
.\" Source: Git 2.21.0.rc0
.\" Language: English
.\"
.TH "GIT\-MV" "1" "02/06/2019" "Git 2\&.21\&.0\&.rc0" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-mv \- Move or rename a file, a directory, or a symlink
.SH "SYNOPSIS"
.sp
.nf
\fIgit mv\fR <options>\&... <args>\&...
.fi
.sp
.SH "DESCRIPTION"
.sp
Move or rename a file, directory or symlink\&.
.sp
.if n \{\
.RS 4
.\}
.nf
git mv [\-v] [\-f] [\-n] [\-k] <source> <destination>
git mv [\-v] [\-f] [\-n] [\-k] <source> \&.\&.\&. <destination directory>
.fi
.if n \{\
.RE
.\}
.sp
In the first form, it renames <source>, which must exist and be either a file, symlink or directory, to <destination>\&. In the second form, the last argument has to be an existing directory; the given sources will be moved into this directory\&.
.sp
The index is updated after successful completion, but the change must still be committed\&.
.SH "OPTIONS"
.PP
\-f, \-\-force
.RS 4
Force renaming or moving of a file even if the target exists
.RE
.PP
\-k
.RS 4
Skip move or rename actions which would lead to an error condition\&. An error happens when a source is neither existing nor controlled by Git, or when it would overwrite an existing file unless
\fB\-f\fR
is given\&.
.RE
.PP
\-n, \-\-dry\-run
.RS 4
Do nothing; only show what would happen
.RE
.PP
\-v, \-\-verbose
.RS 4
Report the names of files as they are moved\&.
.RE
.SH "SUBMODULES"
.sp
Moving a submodule using a gitfile (which means they were cloned with a Git version 1\&.7\&.8 or newer) will update the gitfile and core\&.worktree setting to make the submodule work in the new location\&. It also will attempt to update the submodule\&.<name>\&.path setting in the \fBgitmodules\fR(5) file and stage that file (unless \-n is used)\&.
.SH "BUGS"
.sp
Each time a superproject update moves a populated submodule (e\&.g\&. when switching between commits before and after the move) a stale submodule checkout will remain in the old location and an empty directory will appear in the new location\&. To populate the submodule again in the new location the user will have to run "git submodule update" afterwards\&. Removing the old directory is only safe when it uses a gitfile, as otherwise the history of the submodule will be deleted too\&. Both steps will be obsolete when recursive submodule update has been implemented\&.
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite