在Git中重命名文件后不是预期的日志

时间:2016-09-06 13:20:23

标签: git github

我在git存储库中重命名了一个文件:

git mv oldname.py newname.py

然后git status告诉我需要提交的更改是重命名文件。我没有写git add newname.py。 我提交并推送到GitHub,然后文件的名称已成功更改。 但是当我在GitHub上看到该文件的历史记录时,它只包含最后一次提交,而不是所有提交。

有人可以向我解释发生了什么吗?

2 个答案:

答案 0 :(得分:0)

git mv a b会自动将重命名的文件b添加到暂存区域。这实际上和做

一样
mv a b
git rm a
git add b

cp a b
git rm a
git add b

在这种情况下,可以清楚地看到为什么某些客户端(如GitHub的Web界面)会将这两个文件视为单独的。

答案 1 :(得分:0)

移动时,Git不会移动文件中的编辑历史记录。在进行修补,还原提交等时会产生大量问题。git mv是删除文件和添加到跟踪文件列表的快捷方式。

GitHub没有显示文件的完整历史记录,但您可以使用git log --follow newname.py手动完成,它应该在git mv之前显示更改