文章目录1. 简介2. 格式3. 选项4. 示例4.1 重命名文件4.2 移动文件到目录4.3 移动多个文件到目录4.4 强制移动覆盖目标文件4.5 模拟执行预览操作5. 其他5.1 git mv vs 普通 mv 的区别5.2 移动未跟踪文件5.3 移动后如何撤销5.4 常用别名设置6. 小结参考文献1. 简介git mv命令用于移动或重命名 Git 仓库中的文件或目录。git mv会同时更新工作区和暂存区相当于执行以下三个步骤的快捷方式mvold_name new_namegitrmold_namegitaddnew_name使用git mv可以避免手动执行上述三条命令减少出错可能。2. 格式gitmv[-v][-f][-n][-k]sourcedestinationgitmv[-v][-f][-n][-k]source...destination-directory3. 选项-f,--force强制移动即使目标文件已存在也会覆盖-k跳过会导致错误的操作如移动一个未跟踪的文件 -n, --dry-run 模拟执行显示将会执行的操作但不实际执行 -v,--verbose显示详细输出4. 示例4.1 重命名文件# 将 README.txt 重命名为 README.mdgitmvREADME.txt README.md4.2 移动文件到目录# 将 main.go 移动到 src/ 目录下gitmvmain.go src/4.3 移动多个文件到目录# 将多个文件移动到 utils/ 目录gitmvfile1.go file2.go file3.go utils/4.4 强制移动覆盖目标文件# 如果 target.go 已存在强制覆盖gitmv-fsource.go target.go4.5 模拟执行预览操作# 预览移动操作不实际执行gitmv-nold_name new_name5. 其他5.1git mvvs 普通mv的区别操作工作区暂存区额外步骤mv old newgit add newgit rm old已移动已更新需手动执行三条命令git mv old new已移动已更新一条命令搞定5.2 移动未跟踪文件git mv只能操作已被 Git 跟踪的文件。如需移动未跟踪文件请使用普通mv命令然后git add。# 错误git mv 无法移动未跟踪文件gitmvuntracked.go src/# ❌ 报错# 正确先用 mv再 addmvuntracked.go src/gitaddsrc/untracked.go5.3 移动后如何撤销# 如果还未提交可以重置暂存区并恢复文件gitreset HEAD new_namegitmvnew_name old_name# 或者使用 restoreGit 2.23gitrestore--stagednew_namegitmvnew_name old_name5.4 常用别名设置gitconfig--globalalias.mvgit mvgitconfig--globalalias.mvfmv -f# 使用别名gitmvf old new6. 小结需求命令说明重命名文件git mv old new重命名并自动暂存移动文件到目录git mv file dir/移动并自动暂存移动多个文件git mv f1 f2 f3 dir/批量移动强制移动git mv -f old new覆盖已存在的目标文件预览操作git mv -n old new模拟执行不实际移动一句话总结git mv是 Git 中移动/重命名文件的快捷命令它会自动更新工作区和暂存区。它只能操作已跟踪的文件对于未跟踪文件请先用普通mv再git add。移动前用-n预览是个好习惯。参考文献Git - git-mv Documentation