phpman > man > git-mv(1)

Markdown | JSON | MCP    

TLDR: git-mv (tldr-pages)

Move or rename files and update the Git index.

  • Move a file inside the repo and add the movement to the next commit
    git mv {{path/to/file}} {{path/to/destination}}
  • Rename a file or directory and add the renaming to the next commit
    git mv {{path/to/file_or_directory}} {{path/to/destination}}
  • Overwrite the file or directory in the target path if it exists
    git mv {{-f|--force}} {{path/to/file_or_directory}} {{path/to/destination}}
GIT-MV(1)                                    Git Manual                                    GIT-MV(1)



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

SYNOPSIS
       git mv <options>... <args>...


DESCRIPTION
       Move or rename a file, directory or symlink.

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

       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.

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

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 error condition. An error happens when
           a source is neither existing nor controlled by Git, or when it would overwrite an
           existing file 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 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
       gitmodules(5) file and stage that file (unless -n is used).

BUGS
       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.

GIT
       Part of the git(1) suite



Git 2.34.1                                   02/26/2026                                    GIT-MV(1)

Generated by phpman v3.7.12 Author: Che Dong Under GNU General Public License
2026-06-13 06:53 @216.73.216.28
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!