git - 是否可以在 Git 中移动/重命名文件并维护它们的历史记录?

标签 git rename mv

我想在 Git 中重命名/移动一个项目子树,从中移动它

/project/xyz

/components/xyz

如果我使用普通的 git mv project components,那么 xyz project 的所有提交历史都会丢失。有没有办法移动它以维护历史记录?

最佳答案

Git 检测重命名而不是将操作与提交持久化,因此无论您使用 git mv 还是 mv 都没有关系。

log 命令需要一个 --follow在重命名操作之前继续历史的参数,即,它使用启发式搜索相似的内容。

要查找完整的历史记录,请使用以下命令:

git log --follow ./path/to/file

关于git - 是否可以在 Git 中移动/重命名文件并维护它们的历史记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2314652/

相关文章:

git fetch、FETCH_HEAD 和 origin/master

java - 如何重命名一个文件而不创建另一个文件(Java)

regex - linux中目录的半复杂重组

Ubuntu mv 命令只复制了,但源文件仍然存在

linux - 将文件移动到当前位置的父目录

git - 如何 checkout 远程 Git 分支?

git - 推送到远程分支以进行 pull 请求

node.js - 使用node.js脚本重命名部分文件名

c - rename() 仅适用于程序运行的目录?

git - 我可以在克隆之前在 Visual Studio 2013 中为 TFS Git VC 查看 Git 提交历史记录吗?