abspath: convert real_path_internal() to strbuf
[alt-git.git] / Documentation / git-mv.txt
blobe4531325cd0e00000670692ee3e5a26387460d9e
1 git-mv(1)
2 =========
4 NAME
5 ----
6 git-mv - Move or rename a file, a directory, or a symlink
9 SYNOPSIS
10 --------
11 [verse]
12 'git mv' <options>... <args>...
14 DESCRIPTION
15 -----------
16 Move or rename a file, directory or symlink.
18  git mv [-v] [-f] [-n] [-k] <source> <destination>
19  git mv [-v] [-f] [-n] [-k] <source> ... <destination directory>
21 In the first form, it renames <source>, which must exist and be either
22 a file, symlink or directory, to <destination>.
23 In the second form, the last argument has to be an existing
24 directory; the given sources will be moved into this directory.
26 The index is updated after successful completion, but the change must still be
27 committed.
29 OPTIONS
30 -------
31 -f::
32 --force::
33         Force renaming or moving of a file even if the target exists
34 -k::
35         Skip move or rename actions which would lead to an error
36         condition. An error happens when a source is neither existing nor
37         controlled by Git, or when it would overwrite an existing
38         file unless '-f' is given.
39 -n::
40 --dry-run::
41         Do nothing; only show what would happen
43 -v::
44 --verbose::
45         Report the names of files as they are moved.
47 SUBMODULES
48 ----------
49 Moving a submodule using a gitfile (which means they were cloned
50 with a Git version 1.7.8 or newer) will update the gitfile and
51 core.worktree setting to make the submodule work in the new location.
52 It also will attempt to update the submodule.<name>.path setting in
53 the linkgit:gitmodules[5] file and stage that file (unless -n is used).
55 BUGS
56 ----
57 Each time a superproject update moves a populated submodule (e.g. when
58 switching between commits before and after the move) a stale submodule
59 checkout will remain in the old location and an empty directory will
60 appear in the new location. To populate the submodule again in the new
61 location the user will have to run "git submodule update"
62 afterwards. Removing the old directory is only safe when it uses a
63 gitfile, as otherwise the history of the submodule will be deleted
64 too. Both steps will be obsolete when recursive submodule update has
65 been implemented.
67 GIT
68 ---
69 Part of the linkgit:git[1] suite