NAME

git-mv - Move or rename a file, a directory, or a symlink

SYNOPSIS

  1. git mv <options>…​ <args>…​

DESCRIPTION

Move or rename a file, directory or symlink.

  1. git mv [-v] [-f] [-n] [-k] <source> <destination>
  2. git mv [-v] [-f] [-n] [-k] <source> ... <destination directory>

In the first form, it renames <source>, which must exist and be eithera file, symlink or directory, to <destination>.In the second form, the last argument has to be an existingdirectory; the given sources will be moved into this directory.

The index is updated after successful completion, but the change must still becommitted.

OPTIONS

  • -f
  • —force
  • Force renaming or moving of a file even if the target exists

  • -k

  • Skip move or rename actions which would lead to an errorcondition. An error happens when a source is neither existing norcontrolled by Git, or when it would overwrite an existingfile unless -f is given.

  • -n

  • —dry-run
  • Do nothing; only show what would happen

  • -v

  • —verbose
  • Report the names of files as they are moved.

SUBMODULES

Moving a submodule using a gitfile (which means they were clonedwith a Git version 1.7.8 or newer) will update the gitfile andcore.worktree setting to make the submodule work in the new location.It also will attempt to update the submodule.<name>.path setting inthe gitmodules[5] file and stage that file (unless -n is used).

BUGS

Each time a superproject update moves a populated submodule (e.g. whenswitching between commits before and after the move) a stale submodulecheckout will remain in the old location and an empty directory willappear in the new location. To populate the submodule again in the newlocation the user will have to run "git submodule update"afterwards. Removing the old directory is only safe when it uses agitfile, as otherwise the history of the submodule will be deletedtoo. Both steps will be obsolete when recursive submodule update hasbeen implemented.

GIT

Part of the git[1] suite