git 文件移动与重命名
注
本篇由 AI 生成
在 Git 仓库中移动文件后,只要正确操作,Git 会自动识别文件的移动历史,保持完整的提交记录。关键是让 Git 清晰地知道「这是同一个文件的位置变更」,而非「删除旧文件 + 新增新文件」。
正确的操作步骤
使用
git mv
命令移动文件
这是 Git 推荐的方式,它会同时完成「移动文件」和「记录移动操作」两件事:# 语法:git mv 旧路径 新路径 git mv src/old-file.txt dest/new-file.txt
提交移动操作
移动后,通过git commit
提交变更,Git 会在提交记录中标记这是一次「文件重命名/移动」:git commit -m "移动文件到新目录"
如果手动移动了文件(未用 git mv
)
如果先手动用系统命令(如 mv
)移动了文件,需要手动告诉 Git 这是一次移动:
# 1. 先删除 Git 中旧路径的记录
git rm 旧路径
# 2. 再将新路径的文件加入暂存
git add 新路径
# 3. 提交(Git 会自动识别为移动)
git commit -m "移动文件到新目录"
验证历史记录是否保留
提交后,可以用 git log --follow
追踪文件的完整历史(包括移动前的记录):
# 查看移动后文件的所有历史(包括移动前)
git log --follow 新文件路径
原理说明
Git 识别文件移动的核心是「内容匹配」—— 当一个文件被删除,同时有一个新文件内容相似度过高时,Git 会自动判定为「移动/重命名」,而非两个独立操作。git mv
只是简化了这个过程,避免 Git 误判。
只要按上述方式操作,文件的完整提交历史会被保留,后续可以正常追溯所有修改记录。
人工 upd
针对 vuepress-theme-plume 的迁移来说,如果你一不小心已经先一步大规模移动了所有的文件, 你可以直接:
git rm docs/*
此时,没有移动的文件应该直接消失了。不必惊慌,只放弃这些文件的更改,它们就回来了。
再把所有文件加暂存:
git add .
于是你便不必一个一个文件执行 git rm
和 git add
了 : )
更新日志
2025/10/12 16:29
查看所有更新日志
8d19f
-docs: 试试横屏图片,竖着的难受于07c13
-fix: upload new lock file于f9da0
-docs: update于bd827
-docs: update于