在线文档教程

git mv

git-mv

命名

git-mv - 移动或重命名文件,目录或符号链接

概要

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

描述

移动或重命名文件,目录或符号链接。

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

在第一种形式中,它将 <source> 重命名为 <destination> ,它必须存在,并且可以是文件,符号链接或目录。在第二种形式中,最后一个参数必须是现有目录; 给定的源将被移动到这个目录中。

成功完成后更新索引,但仍必须提交更改。

选项

-f --force

即使目标存在,也要强制重命名或移动文件

-k

跳过移动或重命名会导致错误情况的操作。当源既不存在也不受 Git 控制时,或者除非-f给出,否则会覆盖现有文件时发生错误。

-n --dry-run

没做什么; 只显示会发生什么

-v --verbose

报告移动文件的名称。

子模块

使用 gitfile 移动子模块(意味着它们使用 Git 1.7.8 或更高版本进行克隆)将更新 gitfile 和 core.worktree 设置,以使子模块在新位置工作。它还会尝试更新 gitmodules [5] 文件中的 submodule 。<name> .path 设置并对该文件执行阶段操作(除非使用了-n )。

Bugs

每次超级项目更新移动填充的子模块时(例如,在移动之前和之后在提交之间切换时)旧的子模块检出将保留在旧位置,并且新的位置将出现空目录。要在新位置再次填充子模块,用户必须在之后运行 “git submodule update” 。删除旧目录仅在使用 gitfile 时才是安全的,否则子模块的历史记录也会被删除。当递归子模块更新已经实施时,这两个步骤都将被废弃。