Skip to content

git移动/重命名后找回文件记录 #12

@jmx164491960

Description

@jmx164491960

前言

使用Git的时候,假如我们创建了a.js,经过版本迭代以后需要更改名字,或者改变目录(位置发生改变)。这时候变更后的文件就不会有以前的记录。通过 git log --follow的操作可以把这类重命名/移动后的文件历史给关联起来。

实践

实践操作记录在https://github.com/jmx164491960/git-code-study下的git-follow-study目录下。
我们先在d1文件夹下创建一个文件,提交:
add.png

然后把它从d1文件夹迁移到d2,提交:
这时候在sourceTree上可以看到一个紫色的“R”图标,这是“已更名”的意思
r.png

这时候打开git命令行
输入 git log /git-follow-study/d2/demo.js,只能看到一次文件的提交,即创建时的提交内容:
3.png

下面就是追溯到文件重命名前的历史记录,只需要加上--follow,
4.png

这证明git可以通过识别文件的内容变更判断一个文件是新创建的,还是重命名的。此时我产生一个疑问:假如我把a.js命名为b.js,并增加一行代码。那么git还能识别吗,尝试了一下,是不可行的。也难怪,git只能根据内容是否完全相同这一条件,才能判断出一个文件是新建还是重命名。所以我们以后假如需要重命名文件,切记重命名后就要提交一份,而不要混杂其他的改动

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions