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